Distributed computing control system, method and program

The system facilitates secure and efficient distributed processing across heterogeneous devices by using web browser-based sandbox environments to execute common agent functions and program codes, addressing installation and management challenges in edge computing.

JP7603628B2Active Publication Date: 2024-12-20KDDI CORP
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2022027206
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-02-24
Publication Date
2024-12-20
Estimated Expiration
2042-02-24

AI Technical Summary

Technical Problem

Existing distributed computing systems face challenges in uniformly installing and managing virtual machine execution environments across heterogeneous devices with different processor architectures and operating systems, particularly in edge computing environments where devices are owned by various users or IoT devices.

Method used

A distributed computing control system that utilizes a web browser-based sandbox execution environment to execute a common agent function and distributed processing program, allowing devices to cooperate with a management server without requiring specific installations or modifications, using standard web browser functions to manage and execute program codes and interface codes.

Benefits of technology

Enables distributed processing across devices with diverse architectures and operating systems, ensuring secure and efficient job execution without affecting other programs or memory, and allowing flexible input/output function implementation through interface code modifications.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007603628000001
    Figure 0007603628000001
  • Figure 0007603628000002
    Figure 0007603628000002
  • Figure 0007603628000003
    Figure 0007603628000003
Patent Text Reader

Abstract

To allow an object job to be distributed-processed using a common agent function and program even if there is a difference in processor architecture or OS between worker devices 10.SOLUTION: A system for distributed computing control includes the worker devices 10 to execute distributed-processing, each of which accesses an administrative server 20 through a Web browser 11 of the worker device itself and acquires an agent function 12, starts up and executes the agent function 12 through the Web browser 11 as an execution platform so as to make the agent function 12 acquire a distributed-processing program 30 from the administrative server 20, starts up and executes the distributed-processing program 30 on the Web browser 11 and responds a result of distributed-processing to the administrative server 20. The distributed-processing program 30 includes a program code 31 and an interface code 32. The program code 31 is started up in a sandbox execution environment 13 on the Web browser 11, and the interface code 32 provides an interface function to the program code 31.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a distributed computing control system, method, and program for distributing processing of target jobs using an unspecified number of devices connected to a network, and in particular to a system, method, and program for distributing processing of jobs by multiple worker devices equipped with a web browser in cooperation with a management server. [Background technology]

[0002] Multi-access Edge Computing (MEC), which implements edge computing mechanisms in mobile networks, is attracting attention as one of the architectures for next-generation wireless infrastructure. MEC enables low-latency, wide-bandwidth mobile communications by locating part of the data processing functions as edge servers within the mobile network (e.g., wireless base stations) closer to users, rather than in the cloud.

[0003] On the other hand, 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 a group of devices accommodated by a wireless base station have attracted attention.

[0004] Patent Document 1 discloses a technology that provides a computing service to a user by cloud computing using a virtual machine, thereby eliminating the need to install and update a computing program on a device that performs the computing process. [Prior art documents] [Patent documents]

[0005] [Patent Document 1] JP 2014-130591 A Summary of the Invention [Problem to be solved by the invention]

[0006] According to Patent Document 1, it becomes unnecessary for a user to install an arithmetic processing program every time he or she requests a computing service, and it becomes possible to reduce the time and resources required for updates. However, this method requires an environment in which a virtual machine can be executed in the device that provides the computing service, and a function for managing the virtual machine.

[0007] 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.

[0008] First, since unspecified devices are used as devices for providing computing services, it is difficult to uniformly install in advance the execution environment and management functions of virtual machines required for the computing services.

[0009] Secondly, devices that provide computing services are assumed to be devices owned by other users, IoT devices, etc. In this case, since each device has a different processor architecture, OS (Operating System), and application, it is essential that each device has the function of executing distributed processing using a common program.

[0010] The object of the present invention is to provide a distributed computing control system, method, and program that solves the above-mentioned technical problems and enables distributed processing of a target job among devices using a common agent function and distributed processing program, even if the processor architecture, OS, etc. of each device are different. [Means for solving the problem]

[0011] In order to achieve the above object, the present invention is characterized in that a distributed computing control system in which multiple worker devices equipped with a web browser work in cooperation with a management server to process jobs in a distributed manner, has the following configuration.

[0012] (1) Each worker device is equipped with a means for accessing a management server using a Web browser to obtain an agent function, a means for launching the agent function using the Web browser as an execution platform, a means for causing the agent function to obtain a distributed processing program from the management server, a means for launching 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 the distributed processing.

[0013] (2) Distributed processing programs are now launched in a sandbox execution environment in a web browser.

[0014] (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 being launched in a sandbox execution environment, and the interface code providing the program code with an interface to a web browser and agent functions.

[0015] (4) The agent function is designed to launch the interface code by utilizing the program execution function that is standard in web browsers.

[0016] (5) The agent function is designed to obtain distributed processing programs from the management server by utilizing the file acquisition function that is standard in web browsers.

[0017] (6) Program code is written using an instruction set that can be executed in the sandbox execution environment.

[0018] (7) The agent function is implemented in the web browser of each worker device in the standard language of that web browser.

[0019] (8) The agent function now registers its own worker device on the management server after it is launched within a web browser. Effect of the Invention

[0020] According to the present invention, the following effects can be achieved.

[0021] (1) The agent function runs within the web browser of each worker device, eliminating the need to install the agent function.

[0022] (2) Because the agent function is executed 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.

[0023] (3) Since 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 where the device's processor architecture or OS is different.

[0024] (4) By accessing the management server with a Web browser, the agent function is started within the Web browser, and at the same time the worker device is registered with the management server, eliminating the need for user operations such as registering device information with the management server.

[0025] (5) Since 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.

[0026] (6) Because the program code executing distributed processing accesses the input / output functions via the interface code, the implementation of the input / output functions in distributed processing can be changed simply by changing the interface code without modifying the program code.

[0027] (7) Because the program code executing distributed processing accesses the input / output functions via the interface code, the interface code can verify the data passed to the program code or output from the program code and control the access range.

[0028] (8) Since the implementation of input / output functions can be changed by switching the interface code, if there is a sandbox execution environment that has a common instruction set even in environments outside of a Web browser, the interface code can be changed to one for input / output functions outside of a Web browser, and the program code can be executed without being modified. [Brief description of the drawings]

[0029] [Figure 1] 1 is a diagram illustrating a configuration of a network infrastructure to which a distributed computing control mechanism according to an embodiment of the present invention is applied. [Diagram 2] FIG. 2 is a functional block diagram showing the configuration of a management server and a worker device. [Diagram 3] FIG. 2 is a functional block diagram of a Web browser in a worker device. [Figure 4] FIG. 2 is a functional block diagram of a worker device that performs distributed processing of a plurality of jobs. [Figure 5A] This is a sequence flow (part 1) showing the procedure for executing program code on a worker device. [Figure 5B] This is a sequence flow (part 2) showing the procedure for executing program code on a worker device. [Figure 5C] This is a sequence flow (part 3) showing the procedure for executing program code on a worker device. [Figure 6] 13 is a diagram illustrating an example in which a user of a worker device, as a job requester, requests 3D processing related to the playback of 3D video images to a plurality of worker devices. FIG. [Figure 7] FIG. 13 is a diagram illustrating an example of distributed processing, by a plurality of worker devices, of a job for machine learning a model for predicting traffic volume and weather based on camera images. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0030] Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings. Fig. 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 edge server 1 accommodates a large number of worker devices 10 via a network, and each worker device 10 cooperates with the edge server 1 to perform distributed processing of a target job.

[0031] In this embodiment, an example is described in which the server function for managing distributed processing in each worker device 10 is implemented in the edge server 1 as the management server 20, but the management server 20 may also be configured as a dedicated server independent of the edge server 1.

[0032] The management server 20 has a Web server function 21 and a management function 22, which will be described in detail later, and holds a program module 30 that executes a job that is a target of distributed processing. The management server 20 distributes the program module 30 to each worker device 10, causes the program module 30 to be executed in a Web browser, and obtains the processing results from each worker device 10.

[0033] The worker devices 10 are general-purpose devices such as a personal computer (PC) 10a, a smartphone 10b, a wearable terminal 10c, or a robot 10d, and each of the worker devices 10 is equipped with a Web browser.

[0034] Fig. 2 is a functional block diagram showing the configuration of the management server 20 and the worker device 10, and Fig. 3 is a block diagram showing a schematic diagram of the functions of the Web browser 11 in the worker device 10. The management server 20 manages multiple worker devices 10, but the following description focuses on one of them.

[0035] The management server 20 mainly comprises a Web server function 21 and a management function 22, and holds a program module 30 for distributed processing. The management function 22 manages the worker devices 10 and their distributed processing. The Web server function 21 functions as an access interface for the worker devices 10 to access the management server 20, and distributes the agent function 12 and the program module 30 to each worker device 10.

[0036] The agent function 12 is implemented by combining languages ​​such as HTML (Hypertext Markup Language), CSS (Cascading Style Sheets), and JavaScript that are adopted as Web standards so that the agent function 12 can be executed by an execution engine 14 within a Web browser 11 of a worker device 10 .

[0037] The agent function 12 exchanges worker device information by connecting to the management function 22 of the management server 20 in response to an operation of the Web browser. When the management function 22 assigns a job to be processed to the worker device 10, the agent function 12 obtains a program module 30 corresponding to the job from the Web server function 21.

[0038] The program module 30 is composed of a program code 31 in which the contents of the distributed processing are described, and an interface code 32 in which the input / output processing required for the operation of the program code 31 is described.

[0039] 3, the program code 31 is started and executed in the sandbox execution environment 13 in the Web browser 11, and the interface code 32 is started and executed by the Web browser 11. Therefore, the program code 31 is written in an instruction set executable in the sandbox execution environment 13. The interface code 32 is loaded into the execution engine 14 of the Web browser 11 by the agent function 12.

[0040] In this manner, in this embodiment, the program code 31 is executed in the sandbox execution environment 13 within the web browser 11, thereby preventing the program code 31 from affecting the operation of other programs executed within the web browser 11 or the device 10, or from gaining unauthorized access to memory information of the web browser and other programs executed within the web browser.

[0041] The program code 31 utilizes the input / output functions of the Web browser 11 on a function basis via the interface code 32. The start() function is a function for starting a program. The proc1() function executes processes that do not require input / output functions, and the proc2() function executes processes that require input / output functions.

[0042] The interface code 32 provides necessary input / output functions to the program code 31 isolated in the sandbox execution environment 13 by creating instances 131 and calling various functions via the API. Examples of input information include camera images and sensor information provided in the worker device 10, and parameters provided by the agent function 12. Examples of output information include the results of calculation processing by the program code 31 and log information.

[0043] Specific processing for accessing information required by the program code 31 is implemented in the interface code 32. As an example, processing for accessing sensor information via the Web browser 11 using JavaScript can be implemented.

[0044] The interface code 32 further has a function of accessing the instance 131 in order to cooperate with the program code 31, and of calling functions in both directions with the program code 31, such as the main() function and the sensor() function.

[0045] The main() function is executed automatically when the agent function 12 calls the interface code 32, and passes the corresponding program code 31 to the sandbox execution environment 13 to create an instance 131. This makes it possible to pass input information to the program code 31 and obtain output information from the program code 31. The sensor() function is called by the proc2() function, and provides the input / output functions of the Web browser 11 to the program code 31.

[0046] WebAssembly technology or the like can be adopted as such a sandbox execution environment 13. In this embodiment, when program code 31 is loaded into the sandbox execution environment 13 as shown in Fig. 3, a corresponding instance 131 is created, and execution resources 134 such as a memory area 132 and a program counter 133 used by the program code 31 are secured within the instance. This allows the program code 31 to be executed in an environment isolated from the agent function 12 and programs of other web pages opened in the web browser 11.

[0047] A plurality of distributed processing jobs may be executed in each worker device 10. In this case, as shown in Fig. 4, the worker device 10 acquires a plurality of program modules 30 (30a, 30b) from the Web server function 21 of the management server 20, and executes the respective program codes 31a, 31b and interface codes 32a, 32b in the Web browser 11 simultaneously.

[0048] Next, a procedure for executing the program code 31 on the worker device 10 will be described with reference to the sequence flows of FIGS. 5A, 5B, and 5C.

[0049] First, referring to FIG. 5A, at time t1, a user operates the worker device 10 to start up the Web browser 11 and connect to the management server 20, and at time t2, the Web browser 11 is started up.

[0050] At time t3, the Web browser 11 connects to the Web server function 21 of the management server 20, and at time t4, the Web server function 21 transmits the agent function 12 to the Web browser 11 of the worker device 10. The agent function 12 is downloaded to the worker device 10 using the execution engine 14 (file acquisition function) of the Web browser, and is taken into the execution engine 14.

[0051] At time t5, the agent function 12 is started on the Web browser 11. When the agent function 12 completes the start-up, it registers the worker device 10 in the management function 22 via the Web server function 21 at times t6 and t7 as one of the worker devices responsible for distributed processing.

[0052] In this way, in this embodiment, by accessing the management server 20 with the web browser 11, the agent function 12 is launched within the web browser, and at the same time the worker device 10 is registered with the management server 20, eliminating the need for user operations such as registering device information with the management server 20.

[0053] After this, the agent function 12 periodically requests the management function 22 to acquire the target job. In this embodiment, at time t8, the agent function 12 requests the management function 22 to acquire the target job via the server function 21. At time t9, in response to the request, the Web server function 21 requests the management function 22 to search for the target job.

[0054] At time t10, the management function 22 responds with the search results to the Web server function 21. If the search result is "no jobs to be processed", the Web server function 21 notifies the agent function 12 of this at time t11 and ends this periodic process. After this, the process from time t8 onwards is repeated at a predetermined cycle.

[0055] At time t12, the agent function 12 is notified that the search result indicates that "a job to be processed is available," and at time t13, the agent function 12 requests the Web server function 21 for the program module 30 corresponding to the job. At time t14, in response to the request, the Web server function 21 transmits the corresponding program module 30 to the Web browser 11. The program module 30 is downloaded to the worker device 10 and loaded into the Web browser 11.

[0056] 5B, at time t15, the agent function 12 extracts the interface code 32 included in the program module 30 and starts it by calling the Web browser 11. At time t16, the interface code 32 requests the sandbox execution environment 13 to start the program code 31.

[0057] At time t17, the sandbox execution environment 13 reads the program code 31 and creates an instance 131. That is, the sandbox execution environment 13 secures execution resources 134 such as a memory area 132 and a program counter 133.

[0058] At time t18, the interface code 32 requests the sandbox execution environment 13 to call any startup function (here, the start() function) in the program code 31, and at time t19, the processing in the start() function is executed. At time t20, in order to enable execution of the program code 31 from the sandbox execution environment 13, an external input / output function is accessed by calling a specific external function of the interface code 32. Here, a flow for calling the sensor() function of the interface code 32 to obtain sensor information of the device is shown as an example of an external function.

[0059] When an external function sensor() is called in the program code 31 at time t20, the function sensor() in the interface code 32 is called at time t21 via the API of the sandbox execution environment 13. The function sensor() describes information necessary for providing an input / output environment, such as processing for acquiring signals output by various sensors of the worker device 10.

[0060] At time t22, the interface code 32 requests sensor information from the Web browser 11. When the Web browser 11 acquires the sensor information from the sensor of the worker device 10 at time t23, it responds to the interface code 32 at time t24.

[0061] At time t25, the interface code 32 returns the return value of the sensor() function to the sandbox execution environment 13. At time t26, the sandbox execution environment 13 returns the return value of the sensor() function to the program code 31. At time t27, the return value is processed according to the program code 31. When the execution of the program code 31 is completed, the processing result is stored in the sandbox execution environment 13 at time t28.

[0062] In this way, according to this embodiment, the program code 31 that performs distributed processing of a job accesses an input / output function via the interface code 32, so the implementation of the input / output function in distributed processing can be changed without modifying the program code, simply by changing the interface code 32. Furthermore, the interface code 32 can verify data passed to the program code 31 or output from the program code 31, and control the access range.

[0063] Through the above flow, the program code 31 can use external information for processing by making external function calls.

[0064] 5C, at times t29 and t30, the processing result is passed to the agent function 12 by the interface code 32. At time t31, the agent function 12 passes the processing result to the Web server function 21. At time t32, the Web server function 21 passes the processing result to the management function 22, completing the distributed processing. This enables the management function 22 to execute any distributed processing job on the worker device 10 and receive the processing result.

[0065] FIG. 6 is a diagram showing a schematic 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 a plurality of worker devices 10. In FIG.

[0066] The job requester registers the image collection module 30a and the 3D processing module 30b as the program modules 30 in the management server 20 from his / her own wearable device 10c.

[0067] Each job processor who wishes to carry out distributed processing starts and operates a web browser on his / her own worker device 10 to access the management server 20, obtains the agent function 12, and starts it within the web browser.

[0068] Each agent function 12 obtains a corresponding 3D processing module 30b from the management server 20 and processes the program code 31 in the sandbox execution environment. The processing result is provided to the requesting wearable device 10c via the management server 20 and used to play the 3D video.

[0069] According to this embodiment, a job requester can realize low-latency, wide-bandwidth 3D video playback using a wearable device 10c whose processing power is insufficient for 3D video processing.

[0070] 7 is a diagram illustrating an example of distributed processing of a job of machine learning a model for predicting traffic volume and weather based on camera images by a plurality of worker devices 10. Here, the explanation will be given on the assumption that a video collection module 30c, an image processing module 30d, and a machine learning module 30e have already been registered in the management server 20 as the program modules 30.

[0071] Each job processor wishing to carry out distributed processing starts and operates a web browser on his / her own worker device 10, obtains an agent function 12 from the management server 20, and starts it within the web browser. The agent function 12 obtains a corresponding program module 30 from the management server 20, and executes the program code 31 to obtain the processing result.

[0072] The worker device 10 that has acquired the video collection module 30c collects images captured using its own sensor information (here, camera function) and outputs the images as the results of distributed processing. The worker device 10 that has acquired the image processing module 30d performs image processing such as feature extraction from the results of the video processing and outputs the results of the processing.

[0073] The worker device 10 that has acquired the machine learning module 30e acquires the results of the image processing from the multiple worker devices 10, performs machine learning, and constructs a model that predicts traffic volume and weather from camera images. The prediction model is provided to the job requester.

[0074] 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 the image processing thereof can be distributed to multiple worker devices 10. Therefore, machine learning, which generally has a high processing load, can be performed in an environment with low latency and load distribution.

[0075] According to the above embodiment, it is possible to distribute job processing to multiple worker devices in a low-latency, broadband mobile communication environment, making it possible to provide a variety of services to many people regardless of geographic or economic disparities. As a result, it is possible to contribute to Goal 9 "Build resilient infrastructure and promote inclusive and sustainable industrialization" and Goal 11 "Make cities inclusive, safe, resilient and sustainable" of the Sustainable Development Goals (SDGs) led by the United Nations. [Explanation of symbols]

[0076] 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

1. 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.

2. 2. The distributed computing control system according to claim 1, wherein said agent function executes the interface code by utilizing an execution engine provided in a Web browser.

3. 3. The distributed computing control system according to claim 1, wherein the agent function acquires the distributed processing program from the management server by utilizing an execution engine provided in a Web browser.

4. 4. The distributed computing control system according to claim 1, wherein the program code is written using an instruction set that is executable in the sandbox execution environment.

5. 5. The distributed computing control system according to claim 1, wherein the agent function is implemented in a web browser of each worker device in a language adopted as a web standard.

6. 6. The distributed computing control system according to claim 1, wherein said agent function registers its own worker device in a management server after being started in a Web browser.

7. 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.

8. 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.

Citation Information

Patent Citations

  • Distributed network computing system

    JP2003022189A

  • Method for managing computer resources of distributed processing system

    JP2006221382A

  • Distributed computing system, distribution and combination apparatus for distributed computing, and terminal device

    JP2011170571A

  • Optical element assembly, optical element, production method of optical element assembly, and production method of optical element

    JP2013003542A

  • Computing system for virtual machine and method therefor

    JP2014130591A