JP6486080B2 - Distributed processing system, distributed processing method, and distributed processing program - Google Patents

Distributed processing system, distributed processing method, and distributed processing program Download PDF

Info

Publication number
JP6486080B2
JP6486080B2 JP2014239141A JP2014239141A JP6486080B2 JP 6486080 B2 JP6486080 B2 JP 6486080B2 JP 2014239141 A JP2014239141 A JP 2014239141A JP 2014239141 A JP2014239141 A JP 2014239141A JP 6486080 B2 JP6486080 B2 JP 6486080B2
Authority
JP
Japan
Prior art keywords
client terminal
processing
data
client
server
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
Application number
JP2014239141A
Other languages
Japanese (ja)
Other versions
JP2016099960A (en
Inventor
峰野 博史
博史 峰野
晃明 丸島
晃明 丸島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shizuoka University NUC
Original Assignee
Shizuoka University NUC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shizuoka University NUC filed Critical Shizuoka University NUC
Priority to JP2014239141A priority Critical patent/JP6486080B2/en
Publication of JP2016099960A publication Critical patent/JP2016099960A/en
Application granted granted Critical
Publication of JP6486080B2 publication Critical patent/JP6486080B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明の一側面は、データ処理を実行する分散処理システム、分散処理方法、および分散処理プログラムに関する。   One aspect of the present invention relates to a distributed processing system, a distributed processing method, and a distributed processing program that execute data processing.

コンピュータシステム内の処理を複数のコンピュータの間で分散させる手法として、複数のサーバ間で処理を分散させる手法は従来からよく行われている。この分散処理に関して、下記特許文献1には、処理を行う外部プログラムの実行場所を、各コンピュータの現状の稼働状況に応じて動的に設定するネットワーク・コンピューティング・システムが記載されている。このシステムは、第1のコンピュータが有するプログラムを第2のコンピュータに転送して該第2のコンピュータで所定のデータを処理して結果を得る第1の手順で要する時間と、第1のコンピュータに第2のコンピュータから所定のデータを転送して該第1のコンピュータで処理して結果を第2のコンピュータに転送する第2の手順で要する時間とを比較し、短い時間と判別された方の手順でデータの処理を行なう。   As a technique for distributing processing in a computer system among a plurality of computers, a technique for distributing processing among a plurality of servers has been often performed. With regard to this distributed processing, Patent Document 1 below describes a network computing system that dynamically sets the execution location of an external program for processing according to the current operating status of each computer. This system transfers the program held by the first computer to the second computer, processes the predetermined data by the second computer, and takes the time required for the first procedure to obtain the result. The time that is determined to be short is compared with the time required for the second procedure for transferring predetermined data from the second computer, processing by the first computer, and transferring the result to the second computer. Process the data according to the procedure.

特開2002−99521号公報JP 2002-99521 A

特許文献1に記載のシステムは最終的にいずれか一つのコンピュータにデータを処理させるものであるが、同様のデータ処理を複数のコンピュータに分散させた方がより効率的である場合がある。複数のサーバ間で処理を分散させる仕組みは一般的であるが、演算の最終結果を出力するクライアント端末とサーバとの間で同様の処理を分散させる仕組みは知られていない。性能の向上したクライアント端末とサーバとの間で同様のデータ処理を分散させることでシステム全体の負荷を効率的に分散させる仕組みが望まれている。   The system described in Patent Document 1 finally causes any one computer to process data, but it may be more efficient to distribute similar data processing to a plurality of computers. A mechanism for distributing processing among a plurality of servers is common, but a mechanism for distributing similar processing between a client terminal that outputs a final result of an operation and a server is not known. A mechanism for efficiently distributing the load of the entire system by distributing similar data processing between the client terminal and the server with improved performance is desired.

本発明の一側面に係る分散処理システムは、クライアント端末とサーバとを備える分散処理システムであって、クライアント端末の環境または動作結果を示すクライアント情報を該クライアント端末から取得する取得部と、取得部により取得されたクライアント情報を用いる機械学習を実行することでクライアント端末の処理能力を推定し、推定された処理能力に基づいてクライアント端末とサーバとの間の処理割合を決定する決定部であって、処理割合が、未処理データを用いたデータ処理を実行する割合である、該決定部と、決定部により決定された処理割合に基づいて、クライアント端末およびサーバに未処理データを割り当てる割当部と、クライアント端末におけるデータ処理により得られた処理済データと、サーバにおけるデータ処理により得られた処理済データとの結合を、クライアント端末から出力する出力部とを備える。   A distributed processing system according to an aspect of the present invention is a distributed processing system including a client terminal and a server, and acquires an acquisition unit that acquires client information indicating an environment or an operation result of the client terminal from the client terminal, and an acquisition unit A determination unit that estimates the processing capability of the client terminal by executing machine learning using the client information acquired by the step, and determines a processing ratio between the client terminal and the server based on the estimated processing capability. The processing ratio is a ratio of executing data processing using unprocessed data, and an allocating section that allocates unprocessed data to the client terminal and the server based on the processing ratio determined by the determining section; , Processed data obtained by data processing at the client terminal and data at the server The binding between the obtained processed data by sense, and an output unit for outputting the client terminal.

本発明の一側面に係る分散処理方法は、クライアント端末とサーバとを備える分散処理システムにより実行される分散処理方法であって、クライアント端末の環境または動作結果を示すクライアント情報を該クライアント端末から取得する取得ステップと、取得ステップにおいて取得されたクライアント情報を用いる機械学習を実行することでクライアント端末の処理能力を推定し、推定された処理能力に基づいてクライアント端末とサーバとの間の処理割合を決定する決定ステップであって、処理割合が、未処理データを用いたデータ処理を実行する割合である、該決定ステップと、決定ステップにおいて決定された処理割合に基づいて、クライアント端末およびサーバに未処理データを割り当てる割当ステップと、クライアント端末におけるデータ処理により得られた処理済データと、サーバにおけるデータ処理により得られた処理済データとの結合を、クライアント端末から出力する出力ステップとを含む。   A distributed processing method according to an aspect of the present invention is a distributed processing method executed by a distributed processing system including a client terminal and a server, and acquires client information indicating an environment or an operation result of the client terminal from the client terminal. And the processing capability of the client terminal is estimated by executing machine learning using the client information acquired in the acquisition step, and the processing ratio between the client terminal and the server is calculated based on the estimated processing capability. A determination step for determining, wherein the processing rate is a rate at which data processing using unprocessed data is executed, and based on the determination rate and the processing rate determined in the determination step, An allocation step for assigning process data and a client terminal That the processed data obtained by the data processing, the bond between the obtained processed data by the data processing in the server, and an output step of outputting from the client terminal.

本発明の一側面に係る分散処理プログラムは、クライアント端末とサーバとを備える分散処理システムにより実行される分散処理方法を、少なくとも2台のコンピュータを備えるコンピュータシステムに実行させる分散処理プログラムであって、分散処理方法が、クライアント端末の環境または動作結果を示すクライアント情報を該クライアント端末から取得する取得ステップと、取得ステップにおいて取得されたクライアント情報を用いる機械学習を実行することでクライアント端末の処理能力を推定し、推定された処理能力に基づいてクライアント端末とサーバとの間の処理割合を決定する決定ステップであって、処理割合が、未処理データを用いたデータ処理を実行する割合である、該決定ステップと、決定ステップにおいて決定された処理割合に基づいて、クライアント端末およびサーバに未処理データを割り当てる割当ステップと、クライアント端末におけるデータ処理により得られた処理済データと、サーバにおけるデータ処理により得られた処理済データとの結合を、クライアント端末から出力する出力ステップとを含む。   A distributed processing program according to one aspect of the present invention is a distributed processing program that causes a computer system including at least two computers to execute a distributed processing method executed by a distributed processing system including a client terminal and a server. The distributed processing method obtains client information indicating an environment or an operation result of the client terminal from the client terminal, and performs machine learning using the client information obtained in the obtaining step, thereby increasing the processing capability of the client terminal. Estimating and determining a processing rate between the client terminal and the server based on the estimated processing capability, wherein the processing rate is a rate of executing data processing using unprocessed data, The decision step and the decision step Based on the processing ratio, the allocation step of allocating unprocessed data to the client terminal and the server, the combination of the processed data obtained by the data processing at the client terminal and the processed data obtained by the data processing at the server, An output step of outputting from the client terminal.

このような側面においては、クライアント端末の環境または動作結果に基づく機械学習によりクライアント端末の処理能力が推定され、その推定結果に基づいてクライアント端末とサーバとの処理割合が決定される。したがって、クライアント端末の環境または動作結果を考慮して、クライアント端末とサーバとの間で同様のデータ処理を分散させることができる。その結果、システム全体の負荷を効率的に分散させることができる。   In such an aspect, the processing capability of the client terminal is estimated by machine learning based on the environment or operation result of the client terminal, and the processing ratio between the client terminal and the server is determined based on the estimation result. Therefore, the same data processing can be distributed between the client terminal and the server in consideration of the environment or operation result of the client terminal. As a result, the entire system load can be efficiently distributed.

本発明の一側面によれば、クライアント端末とサーバとの間で同様のデータ処理を分散させることでシステム全体の負荷を効率的に分散させることができる。   According to one aspect of the present invention, it is possible to efficiently distribute the load of the entire system by distributing similar data processing between the client terminal and the server.

実施形態に係る分散処理システムの機能構成を示すブロック図である。It is a block diagram which shows the function structure of the distributed processing system which concerns on embodiment. 実施形態に係る分散処理システムで用いられるコンピュータのハードウェア構成を示す図である。It is a figure which shows the hardware constitutions of the computer used with the distributed processing system which concerns on embodiment. 図1に示す決定部での処理を示すフローチャートである。It is a flowchart which shows the process in the determination part shown in FIG. 補間済データの可視化の例(a),(b)を示す図である。It is a figure which shows the example (a) and (b) of visualization of the data after interpolation. 実施形態に係る分散処理システムの動作を示すシーケンス図である。It is a sequence diagram which shows operation | movement of the distributed processing system which concerns on embodiment. 実施形態に係る分散処理システムの動作を示すシーケンス図である。It is a sequence diagram which shows operation | movement of the distributed processing system which concerns on embodiment. 実施形態に係る分散処理プログラムの構成を示す図である。It is a figure which shows the structure of the distributed processing program which concerns on embodiment.

以下、添付図面を参照しながら本発明の実施形態を詳細に説明する。なお、図面の説明において同一又は同等の要素には同一の符号を付し、重複する説明を省略する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the description of the drawings, the same or equivalent elements are denoted by the same reference numerals, and redundant description is omitted.

本実施形態では、データ補間の分散処理に本発明を適用する。データ補間は、既知の数値データ列を基にして、そのデータ列の各区間内を埋める数値を求める処理であり、拡張現実感のための空間補間などのような様々な目的で用いられる。この補間処理はコンピュータの実行環境やデータ量などの要因により時間が掛かることがあるので、複数のコンピュータを用いた分散処理によりデータ補間を実行するのが好ましい場合がある。   In the present embodiment, the present invention is applied to distributed processing of data interpolation. Data interpolation is a process for obtaining a numerical value that fills each section of a data string based on a known numerical data string, and is used for various purposes such as spatial interpolation for augmented reality. Since this interpolation processing may take time depending on factors such as the execution environment of the computer and the amount of data, it may be preferable to execute the data interpolation by distributed processing using a plurality of computers.

図1〜4を用いて、実施形態に係る分散処理システム1の機能および構成を説明する。本実施形態における分散処理システム1は、室内または屋外に配された複数のセンサから得られた、環境に関する測定値(本明細書では「環境値」ともいう)を補間することでその空間の全体的な環境を推定し、推定結果をコンピュータグラフィックスにより可視化するコンピュータシステムである。センサは空間内に離散的に配置されるので、分散処理システム1は空間内の環境値を網羅的に表示するためにデータ補間を実行する。分散処理システム1は推定結果をユーザに直感的に分かりやすく示すことで、該ユーザに拡張現実感を提供することができる。環境値の例として温度、湿度、通信機器が受信する電波の強度などが挙げられるが、測定値の種類はこれらに限定されない。これに関連して、センサの種類および具体的な構成も限定されない。なお、空間内の離散的な値を補間する処理は「空間補間」ともいわれるが、本発明は空間補間に限らず他のデータ処理にも適用できる。本実施形態では「データ補間」という用語を用いる。   The function and configuration of the distributed processing system 1 according to the embodiment will be described with reference to FIGS. The distributed processing system 1 according to the present embodiment interpolates measurement values related to the environment (also referred to as “environmental values” in the present specification) obtained from a plurality of sensors arranged indoors or outdoors. It is a computer system that estimates a typical environment and visualizes the estimation result by computer graphics. Since the sensors are discretely arranged in the space, the distributed processing system 1 performs data interpolation in order to comprehensively display the environmental values in the space. The distributed processing system 1 can provide the user with augmented reality by showing the estimation result intuitively and easily for the user. Examples of environmental values include temperature, humidity, and intensity of radio waves received by communication devices, but the types of measurement values are not limited to these. In this connection, the type and specific configuration of the sensor are not limited. Note that the process of interpolating discrete values in space is also referred to as “spatial interpolation”, but the present invention is not limited to spatial interpolation but can be applied to other data processes. In this embodiment, the term “data interpolation” is used.

図1に示すように、分散処理システム1は、少なくともサーバ10および1以上のクライアント端末20を備える。この分散処理システム1の特徴は、演算の負荷が大きくなりがちなデータ補間を、複数のサーバ間で分散するのではなく、サーバ10とクライアント端末20との間で分散して処理する点にある。分散処理システム1は、環境測定の対象となる空間Rに配された複数のセンサSから得られた測定値を記憶するデータベース30にアクセスすることができる。データベース30および複数のセンサSは分散処理システム1の一部として用意されてもよいし、分散処理システム1と別のシステム内に存在してもよい。   As shown in FIG. 1, the distributed processing system 1 includes at least a server 10 and one or more client terminals 20. The feature of this distributed processing system 1 is that data interpolation, which tends to increase the calculation load, is distributed between the server 10 and the client terminal 20 instead of being distributed among a plurality of servers. . The distributed processing system 1 can access a database 30 that stores measurement values obtained from a plurality of sensors S arranged in a space R that is an environment measurement target. The database 30 and the plurality of sensors S may be prepared as a part of the distributed processing system 1 or may exist in a system different from the distributed processing system 1.

サーバ10は、インターネットやイントラネットなどの通信回線を通じてデータベース30および各クライアント端末20とデータ通信を行うことが可能なコンピュータである。サーバ10は1台のコンピュータにより構築されてもよいし複数のコンピュータにより構築されてもよい。サーバ10が複数のコンピュータから成る場合には、サーバ10の各機能要素がこれらのコンピュータにより分散処理される。もっとも、上記の通り、本実施形態の特徴はクライアントとサーバとの間の分散処理にあり、サーバ10を構成する複数のコンピュータ間の分散処理にあるわけではない。サーバ10の役割を担うコンピュータの種類は限定されず、例えば、据置型または携帯型のパーソナルコンピュータ(PC)を用いてもよいし、PCより高性能なコンピュータを用いてもよいし、ワークステーションを用いてもよい。   The server 10 is a computer capable of data communication with the database 30 and each client terminal 20 through a communication line such as the Internet or an intranet. The server 10 may be constructed by a single computer or a plurality of computers. When the server 10 is composed of a plurality of computers, each functional element of the server 10 is distributedly processed by these computers. However, as described above, the feature of the present embodiment lies in the distributed processing between the client and the server, and not in the distributed processing between a plurality of computers constituting the server 10. The type of computer that plays the role of the server 10 is not limited. For example, a stationary or portable personal computer (PC) may be used, a computer having higher performance than the PC, or a workstation may be used. It may be used.

クライアント端末20は、分散処理システム1の最終的な処理結果、すなわち空間の環境の推定結果を表示するコンピュータであり、その推定結果に基づく拡張現実感をユーザに提供するコンピュータであるともいうことができる。本実施形態では、クライアント端末20はウェブブラウザを備え、そのウェブブラウザ上に推定結果が視覚的に表示されるものとする。ユーザはクライアント端末20を介して空間の環境の様子を直感的に捉えることができる。クライアント端末20として用いられるコンピュータの種類は限定されず、例えば、据置型または携帯型のPCを用いてもよいし、高機能携帯電話機(スマートフォン)や携帯電話機、携帯情報端末(PDA)、タブレットなどの携帯端末を用いてもよいし、ヘッドマウントディスプレイ(HMD)などのウェアラブル端末でもよい。一般に、クライアント端末20の処理能力(クライアント端末20に搭載されるハードウェア資源(CPUやメモリなど)の性能)は、サーバ10のそれよりも低い。   The client terminal 20 is a computer that displays the final processing result of the distributed processing system 1, that is, the estimation result of the spatial environment, and may be said to be a computer that provides the user with augmented reality based on the estimation result. it can. In the present embodiment, the client terminal 20 includes a web browser, and the estimation result is visually displayed on the web browser. The user can intuitively grasp the state of the space environment via the client terminal 20. The type of computer used as the client terminal 20 is not limited. For example, a stationary or portable PC may be used, a high-function mobile phone (smart phone), a mobile phone, a personal digital assistant (PDA), a tablet, or the like. The portable terminal may be used, or a wearable terminal such as a head mounted display (HMD) may be used. In general, the processing capability of the client terminal 20 (performance of hardware resources (CPU, memory, etc.) mounted on the client terminal 20) is lower than that of the server 10.

サーバ10またはクライアント端末20として用いられる個々のコンピュータ100の一般的なハードウェア構成を図2に示す。コンピュータ100は、オペレーティングシステムやアプリケーション・プログラムなどを実行するCPU(プロセッサ)101と、ROM及びRAMで構成される主記憶部102と、ハードディスクやフラッシュメモリなどで構成される補助記憶部103と、ネットワークカードあるいは無線通信モジュールで構成される通信制御部104と、キーボードやマウス、タッチパッドなどの入力装置105と、ディスプレイやタッチパネルなどの出力装置106とを備える。当然ながら、搭載されるハードウェアモジュールはコンピュータ100の種類により異なる。例えば、据置型のPCおよびワークステーションは入力装置および出力装置としてキーボード、マウス、およびモニタを備えることが多いが、スマートフォンおよびタブレットではタッチパネルが入力装置および出力装置として機能することが多い。   A general hardware configuration of each computer 100 used as the server 10 or the client terminal 20 is shown in FIG. A computer 100 includes a CPU (processor) 101 that executes an operating system, application programs, and the like, a main storage unit 102 that includes a ROM and a RAM, an auxiliary storage unit 103 that includes a hard disk and a flash memory, and a network. The communication control unit 104 includes a card or a wireless communication module, an input device 105 such as a keyboard, a mouse, and a touch pad, and an output device 106 such as a display and a touch panel. Of course, the hardware modules to be mounted differ depending on the type of the computer 100. For example, a stationary PC and a workstation often include a keyboard, a mouse, and a monitor as an input device and an output device, but a touch panel often functions as an input device and an output device in a smartphone and a tablet.

後述するサーバ10およびクライアント端末20の各機能要素は、CPU101または主記憶部102の上に所定のソフトウェアを読み込ませ、CPU101の制御の下で通信制御部104や入力装置105、出力装置106などを動作させ、主記憶部102または補助記憶部103におけるデータの読み出し及び書き込みを行うことで実現される。処理に必要なデータまたはデータベースは主記憶部102または補助記憶部103内に格納される。   Each functional element of the server 10 and the client terminal 20, which will be described later, reads predetermined software on the CPU 101 or the main storage unit 102, and controls the communication control unit 104, the input device 105, the output device 106, and the like under the control of the CPU 101. The operation is realized by reading and writing data in the main storage unit 102 or the auxiliary storage unit 103. Data or a database necessary for processing is stored in the main storage unit 102 or the auxiliary storage unit 103.

データベース30は、所定の時間間隔(例えば10分毎や1時間毎など)毎に複数のセンサSにより測定された複数の測定値を記憶する装置または機能要素である。例えば、データベース30は、8時、9時、10時、…の各時点における複数のセンサSの測定値を記憶する。データベース30の実装方法は限定されず、本実施形態のようにサーバ10とは別の装置であってもよいし、サーバ10内の補助記憶装置上に設けられてもよい。また、データベース30は関係データベースでもよいしCSVファイルでもよい。   The database 30 is a device or functional element that stores a plurality of measured values measured by a plurality of sensors S at predetermined time intervals (for example, every 10 minutes or every hour). For example, the database 30 stores the measurement values of the plurality of sensors S at each time of 8 o'clock, 9 o'clock, 10 o'clock,. The implementation method of the database 30 is not limited, and may be a device different from the server 10 as in the present embodiment, or may be provided on an auxiliary storage device in the server 10. The database 30 may be a relational database or a CSV file.

測定値をデータベース30に蓄積する方法は限定されない。例えばセンサSがデータベース30と直接通信して測定値をデータベース30に格納してもよいし、別のコンピュータがセンサSから測定値を収集して、その値をデータベース30に格納してもよい。データベース30に格納される測定値は、データ補間の入力値として用いられる未補間データである。未補間データとは、データ補間がまだ施されていない生データ(raw data)である。   The method for accumulating the measured values in the database 30 is not limited. For example, the sensor S may directly communicate with the database 30 and store the measurement value in the database 30, or another computer may collect the measurement value from the sensor S and store the value in the database 30. The measured values stored in the database 30 are uninterpolated data used as input values for data interpolation. Uninterpolated data is raw data that has not yet undergone data interpolation.

分散処理システム1の特徴はデータベース30に蓄積されたデータの処理方法にあるので、以下の説明は、処理対象の未補間データがデータベース30内に既に存在することを前提とする。   Since the characteristic of the distributed processing system 1 is the processing method of data stored in the database 30, the following description is based on the assumption that uninterpolated data to be processed already exists in the database 30.

次に、サーバ10の機能構成を説明する。図1に示すように、サーバ10は機能的構成要素としてページ提供部11、クライアント情報取得部(取得部)12、決定部13、割当部14、および補間部15を備える。   Next, the functional configuration of the server 10 will be described. As illustrated in FIG. 1, the server 10 includes a page providing unit 11, a client information acquisition unit (acquisition unit) 12, a determination unit 13, an allocation unit 14, and an interpolation unit 15 as functional components.

ページ提供部11は、空間内の環境の様子を視覚的に表示するためのウェブページをクライアント端末20に提供する機能要素である。そのウェブページの要求(以下では「ページ要求」という)をクライアント端末20から受信すると、ページ提供部11は指定されたウェブページのスクリプト(以下では「ページデータ」という)をそのクライアント端末20に送信する。本実施形態では、ウェブページは例えばHTML(HyperText Markup Language)およびJavaScript(商標または登録商標)により記述されるが、ウェブページを記述する言語はこれらに限定されない。   The page providing unit 11 is a functional element that provides the client terminal 20 with a web page for visually displaying the state of the environment in the space. When the web page request (hereinafter referred to as “page request”) is received from the client terminal 20, the page providing unit 11 transmits a script of the designated web page (hereinafter referred to as “page data”) to the client terminal 20. To do. In this embodiment, the web page is described by, for example, HTML (HyperText Markup Language) and Java Script (trademark or registered trademark), but the language for describing the web page is not limited to these.

ページデータには、クライアント端末20の環境または動作結果を示すクライアント情報を取得するためのスクリプトまたはプログラムが埋め込まれる。分散処理システム1はサーバ10とクライアント端末20との間でデータ補間を分散処理するが、これを実現するためにはクライアント端末20の処理能力を把握しなければならず、したがって、クライアント情報を取得する必要が生じる。本明細書における「クライアント端末の環境」とは、クライアント端末での処理効率に影響を与え得る動作環境のことであり、例えば、ハードウェア、ソフトウェア、または通信ネットワークに関する動作環境である。本明細書における「クライアント端末の動作結果」とは、クライアント端末がデータ補間を実行した際に測定される当該クライアント端末の処理能力であり、例えば、データ補間に要した時間(処理時間)やハードウェア資源の消費量などが挙げられる。本明細書では、クライアント情報は、クライアント端末の環境を示すクライアント環境情報と、クライアント端末の動作結果を示すクライアント成績情報とを含む。   In the page data, a script or program for acquiring client information indicating the environment of the client terminal 20 or the operation result is embedded. The distributed processing system 1 performs distributed processing of data interpolation between the server 10 and the client terminal 20, but in order to realize this, the processing capability of the client terminal 20 must be grasped, and thus client information is acquired. Need to do. The “client terminal environment” in this specification refers to an operating environment that can affect the processing efficiency of the client terminal, and is, for example, an operating environment related to hardware, software, or a communication network. The “operation result of the client terminal” in the present specification is the processing capability of the client terminal measured when the client terminal executes data interpolation. For example, the time required for data interpolation (processing time) or hardware For example, consumption of hardware resources. In this specification, the client information includes client environment information indicating the environment of the client terminal and client result information indicating the operation result of the client terminal.

本実施形態では、クライアント環境情報は、クライアント端末20にインストールされているオペレーティングシステム(OS)およびウェブブラウザと、クライアント端末20とサーバ10との間の通信速度とを示すものとする。ただし、クライアント環境情報の内容はこれらに限定されない。   In this embodiment, the client environment information indicates an operating system (OS) and a web browser installed in the client terminal 20 and a communication speed between the client terminal 20 and the server 10. However, the contents of the client environment information are not limited to these.

クライアント端末20のOSおよびウェブブラウザの情報は、当該クライアント端末20で実行されるウェブブラウザ自身から取得することが可能である。具体的には、ユーザエージェント情報を解析することでウェブブラウザを特定でき、ウェブブラウザが動作しているプラットフォームの情報を解析することでOSを特定できる。これらの二つの情報からクライアント端末20を大まかに分類しておおよその性能を判定することができ、例えば、クライアント端末20がデスクトップPCか携帯端末かを判定できる。OSおよびウェブブラウザの情報を取得するためのclient_environment_acquire関数の擬似コードを以下に示す。   The OS and web browser information of the client terminal 20 can be acquired from the web browser itself executed on the client terminal 20. Specifically, a web browser can be specified by analyzing user agent information, and an OS can be specified by analyzing information on a platform on which the web browser is operating. The client terminal 20 can be roughly classified from these two pieces of information to determine approximate performance. For example, it can be determined whether the client terminal 20 is a desktop PC or a portable terminal. The pseudo code of the client_environment_acquire function for acquiring OS and web browser information is shown below.

function client_environment_acquire(){
ユーザエージェント(window.navigator.userAgent)を取得
ユーザエージェントを解析してウェブブラウザを判定し、判定結果を変数に格納
ブラウザのプラットフォーム(window.navigator.platform)を取得
ブラウザのプラットフォームを解析してOSを判定し、判定結果を変数に格納
OSおよびウェブブラウザの判定結果を示す配列を返却
}
function client_environment_acquire () {
Get the user agent (window.navigator.userAgent) Analyze the user agent to determine the web browser, store the result of the determination in a variable Get the browser platform (window.navigator.platform) Analyze the browser platform and run the OS Judgment and storing the determination result in a variable Returns an array showing the determination result of the OS and web browser
}

クライアント端末20とサーバ10との間の通信速度は、データの送信時刻および受信時刻の差を通信時間として求め、伝送されたデータのサイズをその通信時間で割ることで得られる。通信速度を求めるために用いられるクライアント側の関数(client_network_speedcheck)およびサーバ側の関数(server_network_speedcheck)の擬似コードを以下に示す。client_network_speedcheck関数はページデータに埋め込まれてクライアント端末20に提供される。一方、server_network_speedcheck関数はページデータには埋め込まれず、サーバ10で実行される。計測可能な時間の精度はOS毎に異なるので、通信時間を求める前に、クライアント端末20とサーバ10との間で計測精度が合わせられる。本実施形態では、分散処理システム1はクライアント端末20とサーバ10とが通信を行う度に通信速度を計測するが、通信速度を計測するタイミングはこれに限定されるものではなく、例えば、一定の時間間隔で通信速度を計測してもよい。   The communication speed between the client terminal 20 and the server 10 is obtained by obtaining the difference between the data transmission time and the reception time as the communication time and dividing the size of the transmitted data by the communication time. Pseudo code of a client side function (client_network_speedcheck) and a server side function (server_network_speedcheck) used to determine the communication speed is shown below. The client_network_speedcheck function is embedded in the page data and provided to the client terminal 20. On the other hand, the server_network_speedcheck function is executed by the server 10 without being embedded in the page data. Since the accuracy of the time that can be measured is different for each OS, the measurement accuracy is matched between the client terminal 20 and the server 10 before obtaining the communication time. In the present embodiment, the distributed processing system 1 measures the communication speed every time the client terminal 20 and the server 10 communicate with each other, but the timing for measuring the communication speed is not limited to this. The communication speed may be measured at time intervals.

function client_network_speedcheck(){
クライアントの現在時刻を変数ct1に格納
サーバの現在時刻をサーバに要求
if (サーバから正常な応答があった)
サーバ時刻とクライアント時刻との計測精度を合わせる
上り速度=送信データサイズ/(サーバ現在時刻−ct1)
クライアントの現在時刻を再度取得し、その時刻を変数ct2に格納
下り速度=受信データサイズ/(ct2−サーバ現在時刻)
else
エラーを表示
end if
}
function client_network_speedcheck () {
Store client current time in variable ct1 Request server current server time
if (There was a normal response from the server)
Matching the measurement accuracy of server time and client time Upstream speed = Transmission data size / (Server current time-ct1)
Re-acquire the current time of the client, and store that time in the variable ct2. Downstream speed = received data size / (ct2-server current time)
else
Show errors
end if
}

function server_network_speedcheck(){
サーバの現在時刻を計測
計測した時刻のフォーマットをクライアントに合わせる
サーバの現在時刻を返却
}
function server_network_speedcheck () {
Measure the current server time Match the measured time format to the client Return the current server time
}

本実施形態では、クライアント成績情報は、クライアント端末20に割り当てられた未補間データを入力とするデータ補間の処理時間(クライアント補間時間)と、クライアント端末20がサーバ10に環境値のデータを要求してからすべての補間済データが得られるまでの総処理時間とを示すものとする。ただし、クライアント成績情報の内容はこれらに限定されない。   In the present embodiment, the client performance information includes data interpolation processing time (client interpolation time) in which uninterpolated data assigned to the client terminal 20 is input, and the client terminal 20 requests the server 10 for environmental value data. And the total processing time until all the interpolated data are obtained. However, the content of the client performance information is not limited to these.

クライアント端末で実行されるデータ補間の処理時間を取得するためのinterpolate_benchmark関数の擬似コードを以下に示す。この関数は、データ補間を実行する前と後とでそれぞれ現在時刻を取得し、それらの時刻の差分を処理時間(クライアント補間時間)として設定する。   The pseudo code of the interpolate_benchmark function for obtaining the processing time of data interpolation executed at the client terminal is shown below. This function acquires the current time before and after the data interpolation, and sets the difference between these times as the processing time (client interpolation time).

function interpolate_benchmark(未補間データ){
クライアントの現在時刻をtime1に格納
未補間データを入力とするデータ補間を実行
クライアントの現在時刻をtime2に格納
処理時間=time2−time1
得られた補間済データと演算時間を返却
}
function interpolate_benchmark (uninterpolated data) {
Stores the current time of the client in time1 Executes data interpolation using uninterpolated data as input Stores the current time of the client in time2 Processing time = time2-time1
Return the interpolated data and calculation time obtained
}

このinterpolate_benchmark関数は、可視化のためのデータ補間だけでなく、その処理のベンチマークテストの役割も持つ。このように実際のデータ補間をベンチマークテストとしても利用することで、可視化のためのデータ補間とは別にベンチマークテストを実行しなくて済む。   The interpolate_benchmark function has not only data interpolation for visualization, but also a benchmark test for the processing. Thus, by using actual data interpolation as a benchmark test, it is not necessary to execute a benchmark test separately from the data interpolation for visualization.

クライアント情報取得部12は、クライアント情報を取得する機能要素である。クライアント情報取得部12はクライアント環境情報またはクライアント成績情報をクライアント端末20から受信し、その情報を決定部13に出力する。   The client information acquisition unit 12 is a functional element that acquires client information. The client information acquisition unit 12 receives client environment information or client performance information from the client terminal 20 and outputs the information to the determination unit 13.

決定部13は、クライアント端末20とサーバ10との間の処理割合を決定する機能要素である。本明細書における「処理割合」とはクライアント端末20とサーバ10との間でデータ補間を実行する割合であり、これは、処理される未補間データの割合であるともいえる。データ補間の全体または未補間データの全体を1として、クライアント端末20およびサーバ10の処理割合がそれぞれ0.3および0.7であれば、クライアント端末20が30%分の未補間データに対するデータ補間を実行し、サーバ10が残り70%分の未補間データに対するデータ補間を実行する。決定部13は決定した処理割合を割当部14に出力する。   The determination unit 13 is a functional element that determines a processing ratio between the client terminal 20 and the server 10. The “processing ratio” in this specification is a ratio at which data interpolation is performed between the client terminal 20 and the server 10, and it can be said that this is a ratio of uninterpolated data to be processed. If the entire data interpolation or the entire uninterpolated data is 1, and the processing rates of the client terminal 20 and the server 10 are 0.3 and 0.7, respectively, the client terminal 20 performs data interpolation for 30% of uninterpolated data. And the server 10 performs data interpolation on the remaining 70% of the uninterpolated data. The determination unit 13 outputs the determined processing ratio to the allocation unit 14.

決定部13は機械学習を実行することでクライアント端末20の処理能力を推定し、推定された処理能力に基づいて処理割合を決定する。本明細書における「機械学習」とは、既知の値の集合であるトレーニングデータを学習することで未知の値を予測する処理である。   The determination unit 13 estimates the processing capability of the client terminal 20 by executing machine learning, and determines the processing ratio based on the estimated processing capability. “Machine learning” in this specification is a process of predicting an unknown value by learning training data that is a set of known values.

まず、決定部13は、クライアント環境情報を入力パラメータとし、前回のデータ補間で得られたクライアント成績情報を正解データとする機械学習を実行してクライアント端末20の処理能力を推定する。そして、決定部13はその推定結果に基づいて、処理能力に従って予め設定された複数のグループのうち、そのクライアント端末20がどのグループに属するかを判定する。例えば、処理能力を処理時間で表すとして、処理時間が20ms(ミリ秒)未満であるグループGaと、処理時間が20ms以上50ms未満であるグループGbと、処理時間が50ms以上であるグループGcとが設定されたとする。この場合において、決定部13は、機械学習によりクライアント端末20の処理能力(処理時間)を40msと推定した場合には、このクライアント端末20がグループGbに属すると判定する。続いて、決定部13は、そのグループ毎に用意された図3のフローチャートに従って次回の処理割合を決定する。   First, the determination unit 13 estimates the processing capability of the client terminal 20 by executing machine learning using the client environment information as an input parameter and the client result information obtained by the previous data interpolation as correct data. And the determination part 13 determines which group the client terminal 20 belongs to among the several groups preset according to the processing capability based on the estimation result. For example, assuming that the processing capability is represented by processing time, there are a group Ga whose processing time is less than 20 ms (milliseconds), a group Gb whose processing time is 20 ms or more and less than 50 ms, and a group Gc whose processing time is 50 ms or more. Suppose that it is set. In this case, the determination unit 13 determines that the client terminal 20 belongs to the group Gb when the processing capability (processing time) of the client terminal 20 is estimated to be 40 ms by machine learning. Subsequently, the determination unit 13 determines the next processing ratio according to the flowchart of FIG. 3 prepared for each group.

その後、決定部13はその処理割合に従って実行された次のデータ補間で得られたクライアント成績情報を次の正解データとする機械学習を実行することで処理能力を再び推定し、クライアント端末20が所属するグループを判定する。そして、決定部13はそのグループに対応する図3のフローチャートに従ってさらに次の処理割合を決定する。このような処理を繰り返すことで、処理割合が次第に最適化されていく。ただし、初回の機械学習ではクライアント成績情報が存在しないので、決定部13は正解データを用いることなく、クライアント環境情報を入力パラメータとする機械学習を実行する。クライアント環境情報は最初に取得すれば足りるので、2回目以降の機械学習では決定部13は取得済のクライアント環境情報を再利用してもよい。   Thereafter, the determination unit 13 estimates the processing capacity again by executing machine learning using the client performance information obtained by the next data interpolation executed according to the processing ratio as the next correct answer data, and the client terminal 20 belongs. Determine the group to perform. Then, the determination unit 13 further determines the next processing ratio according to the flowchart of FIG. 3 corresponding to the group. By repeating such processing, the processing ratio is gradually optimized. However, since there is no client result information in the first machine learning, the determination unit 13 executes machine learning using the client environment information as an input parameter without using correct data. Since it is sufficient to acquire the client environment information first, the determination unit 13 may reuse the acquired client environment information in the second and subsequent machine learning.

図3を参照しながら、ある一つのグループにおいて処理割合を決定する処理を詳細に説明する。処理割合の決定方法は、一グループ内での最適化の進展状況に応じて変わる。大まかにいうと、(a)クライアント成績情報をサンプルとして一定量だけ蓄積するまでの間(初期サンプル群が完成するまでの間)、(b)初期サンプル群を得てから、最適解を得たと判定するまでの間、(c)最適解を得たと判定した後の三つの場面で、処理割合の決定方法が異なる(ステップS11)。   With reference to FIG. 3, the process for determining the processing ratio in a certain group will be described in detail. The method for determining the processing rate varies depending on the progress of optimization within one group. Roughly speaking, (a) until a certain amount of client performance information is accumulated as a sample (until the initial sample group is completed), (b) after obtaining the initial sample group, the optimal solution is obtained. Until the determination, (c) the method for determining the processing ratio is different in the three scenes after determining that the optimum solution has been obtained (step S11).

最初のn個のクライアント成績情報が揃うまでは(すなわち、初期サンプル群が完成するまでは)、決定部13は処理割合をランダムに決定する(ステップS12)。この処理割合に基づいてクライアント端末20およびサーバ10がデータ補間を実行すると、決定部13はそのデータ補間により得られたクライアント成績情報をサンプルとして保存する(ステップS12)。決定部13はn個のクライアント成績情報を初期サンプル群として得るまでこの一連の処理を繰り返す(ステップS12)。   Until the first n pieces of client result information are prepared (that is, until the initial sample group is completed), the determination unit 13 determines the processing ratio at random (step S12). When the client terminal 20 and the server 10 perform data interpolation based on this processing ratio, the determination unit 13 stores the client performance information obtained by the data interpolation as a sample (step S12). The determination unit 13 repeats this series of processes until n pieces of client performance information are obtained as an initial sample group (step S12).

n個のサンプル(クライアント成績情報)が得られると、決定部13はグループにおける処理割合の最適解を遺伝的アルゴリズムを用いて探索する。具体的には、決定部13はクライアント成績情報に基づいてこれらのサンプルを順位付けすることでサンプル群を評価し(ステップS13)、最適解が変化する間は以下の処理を実行する(ステップS14;YES)。すなわち、決定部13は成績が上位h%の処理割合のサンプルを上位集団として残し、残りのサンプルを破棄する(ステップS15)。ここで、「成績が上位」であるとは、処理時間および総処理時間のうちの少なくとも一方に基づく評価値が上位であることを意味する。例えば、決定部13は、処理時間または総処理時間が短い順に複数のサンプルを上位集団として選択してもよいし、処理時間および総処理時間に基づいて任意の手法で算出される評価値が高い順に複数のサンプルを上位集団として設定してもよい。   When n samples (client performance information) are obtained, the determination unit 13 searches for an optimal solution of the processing ratio in the group using a genetic algorithm. Specifically, the determination unit 13 evaluates the sample group by ranking these samples based on the client performance information (Step S13), and executes the following processing while the optimal solution changes (Step S14). ; YES). That is, the determination unit 13 leaves a sample with a processing ratio of the highest h% as a higher group, and discards the remaining samples (step S15). Here, “the result is higher” means that the evaluation value based on at least one of the processing time and the total processing time is higher. For example, the determination unit 13 may select a plurality of samples as an upper group in the order of short processing time or total processing time, and the evaluation value calculated by an arbitrary method based on the processing time and the total processing time is high. A plurality of samples may be set as the upper group in order.

続いて、決定部13は、遺伝的アルゴリズムの親選択方法のうちのランキング選択を用いて親(二つの処理割合)を選択し(ステップS16)、その親から、より適切な処理割合に近い可能性を持つ新たな処理割合を生成する(ステップS17)。この新たな処理割合に基づいてクライアント端末20およびサーバ10がデータ補間を実行すると、決定部13はそのデータ補間により得られたクライアント成績情報をサンプルとして保存する(ステップS18)。決定部13はサンプル数が閾値nに達するまでステップS16〜S18の処理を繰り返す(ステップS19参照)。   Subsequently, the determination unit 13 selects a parent (two processing ratios) using ranking selection in the parent selection method of the genetic algorithm (step S16), and may be closer to a more appropriate processing ratio from the parent. A new processing ratio having the property is generated (step S17). When the client terminal 20 and the server 10 execute data interpolation based on the new processing ratio, the determination unit 13 stores the client performance information obtained by the data interpolation as a sample (step S18). The determination unit 13 repeats the processes of steps S16 to S18 until the number of samples reaches the threshold value n (see step S19).

ステップS16〜S18の処理をさらに詳細に説明する。決定部13はまず上位集団の各サンプルに、成績に基づく順位rに応じて出現確率pを割り振る。順位rが1に近いサンプルほど出現確率pが大きく設定され、処理割合の生成に用いる要素として高い確率で選択される。決定部13は出現確率pを式(1)によって求める。

Figure 0006486080
The processing of steps S16 to S18 will be described in further detail. To each sample of the decision unit 13 first-level group, allocating the occurrence probability p f depending on the rank r based on the results of operations. Rank r is sampled as appearance probability p f is set large close to 1, it is selected with high probability as an element used for generating the processing percentages. The determination unit 13 obtains the appearance probability pf according to the equation (1).
Figure 0006486080

次に、決定部13は得られた出現確率pに従ってランダムに2つの処理割合を選択する。もし二つの処理割合が同じだった場合には決定部13は、異なる処理割合が得られるようにその選択処理を再度行う。加えて、処理割合の組合せが過去に選択したことがあるものと同じだった場合にも、決定部13は選択処理を再度行う。同じ値同士でない新規の組み合わせを選択すると、決定部13はその組合せの中央値を求めることで新たな処理割合を生成する。この一連の処理では、サンプルの組合せにより、限られた入力値の範囲のみで最適となる局所最適解を最適としてしまう問題が発生し得るので、決定部13は突然変異確率pを用いて処理割合をランダムに変動させる。この処理により、最適解を、局所最適解ではなく、全体としての最適解である大域最適解に近づけることが可能になる。 Next, select the two treatment rates randomly in accordance with the determined unit 13 has obtained occurrence probability p f. If the two processing ratios are the same, the determination unit 13 performs the selection process again so that different processing ratios are obtained. In addition, even when the combination of processing ratios is the same as that selected in the past, the determination unit 13 performs the selection process again. When a new combination that is not the same value is selected, the determination unit 13 generates a new processing ratio by obtaining the median value of the combination. In this series of processes, the combination of the sample, the local optimal solutions for the optimization only a limited range of input values so results in optimal problems may occur, the determination unit 13 using the mutation probabilities p m processing The ratio is varied randomly. By this processing, it becomes possible to bring the optimum solution closer to the global optimum solution that is the optimum solution as a whole, not the local optimum solution.

サンプル数が閾値nに達すると(ステップS19;YES)、決定部13は再びサンプル群を評価し(ステップS13)、最適解が変化する間はステップS15〜S19の処理を繰り返すことで、最適解を探っていく。決定部13は、成績の良かった処理割合から新たな処理割合を生成する処理を繰り返すことで最適解を探る。ステップS15〜S19をX回試行しても最適解が変化しなかった場合には(ステップS14;NO)、決定部13は処理割合の最適解を獲得したと判定する(ステップS20)。   When the number of samples reaches the threshold value n (step S19; YES), the determination unit 13 evaluates the sample group again (step S13), and repeats the processing of steps S15 to S19 while the optimal solution changes, thereby determining the optimal solution. I will explore. The determination unit 13 searches for an optimal solution by repeating the process of generating a new processing rate from the processing rate with good results. If the optimal solution does not change even after trying steps S15 to S19 X times (step S14; NO), the determination unit 13 determines that the optimal solution for the processing ratio has been acquired (step S20).

最適解を獲得した以降は、決定部13はそのグループに属するクライアント端末20に対する処理割合としてその最適解を設定する(ステップS21)。   After acquiring the optimal solution, the determination unit 13 sets the optimal solution as the processing ratio for the client terminals 20 belonging to the group (step S21).

なお、このような遺伝的アルゴリズムで用いる閾値n、割合h(%)、突然変異確率p、および繰返し回数に関する閾値Xの決定方法は限定されない。 It should be noted that the threshold value X, the ratio h (%), the mutation probability p m , and the threshold value X determination method used in such a genetic algorithm are not limited.

このように、決定部13はデータ補間をサーバ10とクライアント端末20との間で実行させながら最適な処理割合を探っていく。したがって、クライアント端末20の要求に応じて決定部13により決定される処理割合が常に最適なものであるとは限らない。   In this way, the determination unit 13 searches for an optimal processing ratio while executing data interpolation between the server 10 and the client terminal 20. Therefore, the processing rate determined by the determination unit 13 in response to a request from the client terminal 20 is not always optimal.

割当部14は、処理すべき未補間データをデータベース30から読み出し、決定部13により決定された処理割合に基づいてその未補間データをクライアント端末20とサーバ10とに割り当てる機能要素である。割当部14は、クライアント端末20に割り当てた未補間データをそのクライアント端末20に送信し、サーバ10に割り当てた未補間データを補間部15に出力する。   The allocation unit 14 is a functional element that reads uninterpolated data to be processed from the database 30 and allocates the uninterpolated data to the client terminal 20 and the server 10 based on the processing ratio determined by the determination unit 13. The allocating unit 14 transmits the uninterpolated data allocated to the client terminal 20 to the client terminal 20 and outputs the uninterpolated data allocated to the server 10 to the interpolating unit 15.

割当部14は未補間データの割当比率が処理割合と一致するように未補間データをクライアント端末20とサーバ10とに割り当てる。例えば、クライアント端末20およびサーバ10の処理割合がそれぞれ0.3および0.7と決定されたのであれば、割当部14は未補間データの30%分をクライアント端末20に割り当て、残りの70%分をサーバ10に割り当てる。なお、当然ながら、未補間データを構成する値の個数によっては未補間データの割当比率が処理割合と完全に一致しない場合があり得る。例えば、クライアント端末20とサーバ10との間の処理割合が3:7と決まったとしても、未補間データの割当比率が2.8:7.2となることがあり得る。   The allocation unit 14 allocates the non-interpolated data to the client terminal 20 and the server 10 so that the allocation ratio of the non-interpolated data matches the processing rate. For example, if the processing rates of the client terminal 20 and the server 10 are determined to be 0.3 and 0.7, respectively, the allocation unit 14 allocates 30% of the uninterpolated data to the client terminal 20 and the remaining 70% Allocate minutes to the server 10. Of course, depending on the number of values constituting the uninterpolated data, the allocation ratio of the uninterpolated data may not completely match the processing ratio. For example, even if the processing ratio between the client terminal 20 and the server 10 is determined to be 3: 7, the allocation ratio of uninterpolated data may be 2.8: 7.2.

割当部14は、クライアント端末20とサーバ10とに単純に未補間データを配分してもよい。あるいは、割当部14は、処理割合に従いつつ、空間R内の特定の領域に設置されたセンサSで得られた未補間データをクライアント端末20に割り当ててもよい。例えば、割当部14はクライアント端末20から要求された領域(例えば、HMDで計測された視線方向または視認領域に基づく領域)に対応する1以上のセンサSを特定し、そのセンサSで得られた未補間データをクライアント端末20に割り当ててもよい。この場合には、クライアント端末20がその要求された領域でのデータ補間を先に実行して、当該領域の環境値を先に可視化することが可能になる(サーバ10から得られる補間済データはその後に可視化される)。   The allocating unit 14 may simply distribute the non-interpolated data to the client terminal 20 and the server 10. Alternatively, the assigning unit 14 may assign the non-interpolated data obtained by the sensor S installed in a specific region in the space R to the client terminal 20 while following the processing rate. For example, the allocating unit 14 identifies one or more sensors S corresponding to the area requested from the client terminal 20 (for example, the line-of-sight direction measured by the HMD or the area based on the viewing area), and obtained by the sensor S. Uninterpolated data may be assigned to the client terminal 20. In this case, it becomes possible for the client terminal 20 to first perform data interpolation in the requested region and visualize the environment value in the region first (interpolated data obtained from the server 10 is Then visualized).

補間部15は、サーバ10に割り当てられた未補間データに対するデータ補間を実行することで補間済データを生成する機能要素である。データ補間のアルゴリズムは限定されないが、例えば、空間補間アルゴリズムの一つである逆距離加重法を用いてもよい。この処理により、隣接するセンサS間における任意の領域での環境(例えば温度、湿度、電波強度)の推定値が得られる。補間部15は得られた補間済データをクライアント端末20に送信する。補間済データは、未補間データで示される環境値と、隣接するセンサ間における仮想の測定点における推定環境値との双方を含むデータである。   The interpolation unit 15 is a functional element that generates interpolated data by performing data interpolation on uninterpolated data assigned to the server 10. The data interpolation algorithm is not limited. For example, an inverse distance weighting method that is one of spatial interpolation algorithms may be used. By this processing, an estimated value of the environment (for example, temperature, humidity, radio wave intensity) in an arbitrary region between adjacent sensors S is obtained. The interpolation unit 15 transmits the obtained interpolated data to the client terminal 20. The interpolated data is data including both the environmental value indicated by the non-interpolated data and the estimated environmental value at a virtual measurement point between adjacent sensors.

次に、クライアント端末20の機能構成を説明する。図1に示すように、クライアント端末20は機能的構成要素としてページ取得部21、クライアント情報提供部(取得部)22、補間部23、および表示制御部(出力部)24を備える。   Next, the functional configuration of the client terminal 20 will be described. As illustrated in FIG. 1, the client terminal 20 includes a page acquisition unit 21, a client information providing unit (acquisition unit) 22, an interpolation unit 23, and a display control unit (output unit) 24 as functional components.

ページ取得部21は、空間内の環境の様子を視覚的に表示するためのウェブページをサーバ10から取得する機能要素である。ページ取得部21はユーザ操作に基づいてまたは自動的にページ要求(空間内の環境の様子を視覚的に表示するためのウェブページの要求)をサーバ10に送信し、その要求に応じてサーバ10(ページ提供部11)から送られてきたページデータを受信する。このページデータがCPU101により実行されることで、ウェブページがウェブブラウザ上に表示されるとともに、未補間データの要求がクライアント端末20からサーバ10に送信される。   The page acquisition unit 21 is a functional element that acquires a web page for visually displaying the state of the environment in the space from the server 10. The page acquisition unit 21 transmits a page request (a request for a web page for visually displaying the state of the environment in the space) to the server 10 based on a user operation, and in response to the request, the server 10 The page data sent from the (page providing unit 11) is received. When the page data is executed by the CPU 101, the web page is displayed on the web browser, and a request for uninterpolated data is transmitted from the client terminal 20 to the server 10.

クライアント情報提供部22は、クライアント情報(クライアント環境情報およびクライアント成績情報)を取得する機能要素であり、ページデータに埋め込まれたclient_environment_acquire関数、client_network_speedcheck関数、およびinterpolate_benchmark関数がCPU101により実行されることで実現される。クライアント情報提供部22はclient_environment_acquire関数およびclient_network_speedcheck関数によりOSおよびウェブブラウザの情報と通信速度とを取得し、これらの情報をサーバ10に送信する。また、クライアント情報提供部22は、interpolate_benchmark関数で得られる処理時間と総処理時間とをクライアント成績情報としてサーバ10に送信する。   The client information providing unit 22 is a functional element that acquires client information (client environment information and client results information), and is realized by the CPU 101 executing the client_environment_acquire function, the client_network_speedcheck function, and the interpolate_benchmark function embedded in the page data. Is done. The client information providing unit 22 acquires the OS and web browser information and the communication speed using the client_environment_acquire function and the client_network_speedcheck function, and transmits these information to the server 10. Further, the client information providing unit 22 transmits the processing time obtained by the interpolate_benchmark function and the total processing time to the server 10 as client result information.

補間部23は、クライアント端末20に割り当てられた未補間データ(サーバ10から受信した未補間データ)に対するデータ補間を実行することで補間済データを生成する機能要素であり、ページデータに埋め込まれたinterpolate_benchmark関数がCPU101により実行されることで実現される。サーバ10の補間部15と同様に、データ補間のアルゴリズムは限定されず、逆距離加重法などの任意の手法を用いることができる。この処理により、隣接するセンサS間における任意の領域での環境(例えば温度、湿度、電波強度)の推定値が得られる。補間部23は得られた補間済データを表示制御部24に出力する。   The interpolation unit 23 is a functional element that generates interpolated data by performing data interpolation on uninterpolated data (uninterpolated data received from the server 10) assigned to the client terminal 20, and is embedded in page data This is realized by the CPU 101 executing the interpolate_benchmark function. Similar to the interpolation unit 15 of the server 10, the data interpolation algorithm is not limited, and an arbitrary method such as a reverse distance weighting method can be used. By this processing, an estimated value of the environment (for example, temperature, humidity, radio wave intensity) in an arbitrary region between adjacent sensors S is obtained. The interpolation unit 23 outputs the obtained interpolated data to the display control unit 24.

表示制御部24はクライアント端末20におけるデータ補間により得られた補間済データと、サーバ10におけるデータ補間により得られた補間済データとの結合を出力する機能要素である。ここで、「結合」という用語は、一組のデータとして出力される、クライアント端末20およびサーバ10で得られた補間済データの集合を意味する。表示制御部24は、補間部23から補間済データが入力され且つサーバ10から補間済データを受信すると、コンピュータグラフィックによりこれらの補間済データをウェブページ上に視覚的に表示する。この処理により補間済データが可視化される。   The display control unit 24 is a functional element that outputs a combination of the interpolated data obtained by data interpolation in the client terminal 20 and the interpolated data obtained by data interpolation in the server 10. Here, the term “join” means a set of interpolated data obtained by the client terminal 20 and the server 10 that is output as a set of data. When the interpolated data is input from the interpolating unit 23 and the interpolated data is received from the server 10, the display control unit 24 visually displays the interpolated data on the web page by computer graphics. By this processing, the interpolated data is visualized.

表示制御部24により提供される、空間内の環境を示す3次元画像の例を模式的に図4に示す。図4では空間内の環境値の大きさを網掛けの濃さで示しているが、3次元画像はカラー画像(例えば、環境値が高い場所を赤に近い色で示しそれが低い場所を青に近い色で示す画像)であってもよいし、グレースケール画像であってもよい。図4の例(a)は空間R全体の環境を可視化した3次元画像であり、例(b)は、その空間R内に存在するカメラCから得られる映像に可視化した環境値を重畳した画面(拡張現実感を提供する画面)である。   FIG. 4 schematically shows an example of a three-dimensional image provided by the display control unit 24 and showing the environment in the space. In FIG. 4, the magnitude of the environmental value in the space is indicated by the shaded shade, but the three-dimensional image is a color image (for example, a place where the environmental value is high is indicated by a color close to red and a place where the environmental value is low is indicated by blue The image may be a color close to or a gray scale image. The example (a) in FIG. 4 is a three-dimensional image in which the environment of the entire space R is visualized, and the example (b) is a screen in which the visualized environment value is superimposed on the video obtained from the camera C existing in the space R. (Screen providing augmented reality).

次に、図5,6を用いて、分散処理システム1の動作を説明するとともに本実施形態に係る分散処理方法について説明する。   Next, the operation of the distributed processing system 1 will be described with reference to FIGS. 5 and 6 and the distributed processing method according to the present embodiment will be described.

まず、クライアント端末20のページ取得部21がページ要求をサーバ10に送信し(ステップS111)、サーバ10のページ提供部11がその要求に応じてページデータをクライアント端末20に送信する(ステップS112)。このページデータは、クライアント情報を取得するためのスクリプトまたはプログラム(例えば、client_environment_acquire関数、client_network_speedcheck関数、およびinterpolate_benchmark関数)を含む。   First, the page acquisition unit 21 of the client terminal 20 transmits a page request to the server 10 (step S111), and the page providing unit 11 of the server 10 transmits page data to the client terminal 20 in response to the request (step S112). . This page data includes a script or a program (for example, a client_environment_acquire function, a client_network_speedcheck function, and an interpolate_benchmark function) for acquiring client information.

クライアント端末20では、ページ取得部21がそのページデータを受信する。このページデータがCPU101により実行されることでウェブページが画面上に表示される。また、ページデータ内のスクリプトが実行されることで、クライアント情報提供部22がOSおよびウェブブラウザの情報と通信速度とをクライアント環境情報として取得し(ステップS113、取得ステップ)、そのクライアント環境情報をサーバ10に送信する(ステップS114)。また、ページ取得部21が未補間データをサーバ10に要求する(データ要求。ステップS115)。   In the client terminal 20, the page acquisition unit 21 receives the page data. By executing this page data by the CPU 101, a web page is displayed on the screen. Further, by executing the script in the page data, the client information providing unit 22 acquires the OS and web browser information and the communication speed as client environment information (step S113, acquisition step), and the client environment information is acquired. It transmits to the server 10 (step S114). Further, the page acquisition unit 21 requests uninterpolated data from the server 10 (data request, step S115).

サーバ10では、クライアント情報取得部12がクライアント環境情報を受信する(取得ステップ)。続いて、決定部13が機械学習などのアルゴリズムを用いて、クライアント端末20とサーバ10との間のデータ補間の処理割合を決定する(ステップS116、決定ステップ)。そして、割当部14が処理対象の未補間データをデータベース30から抽出し、処理割合に基づいてその未補間データをクライアント端末20およびサーバ10に割り当てる(ステップS117、割当ステップ)。割当部14はクライアント端末20に割り当てた未補間データ(クライアント端末用の未補間データ)をクライアント端末20に送信する(ステップS118)。   In the server 10, the client information acquisition unit 12 receives client environment information (acquisition step). Subsequently, the determination unit 13 determines the processing rate of data interpolation between the client terminal 20 and the server 10 using an algorithm such as machine learning (step S116, determination step). Then, the assigning unit 14 extracts uninterpolated data to be processed from the database 30, and assigns the uninterpolated data to the client terminal 20 and the server 10 based on the processing ratio (step S117, assignment step). The allocating unit 14 transmits uninterpolated data (uninterpolated data for the client terminal) allocated to the client terminal 20 to the client terminal 20 (step S118).

クライアント端末20では、補間部23がその未補間データを受信し、このデータに対するデータ補間を実行する(ステップS119)。この際に、クライアント情報提供部22がそのデータ補間の実行により得られるクライアント成績情報を取得する。一方で、サーバ10では補間部15が割当部14から入力された未補間データ(サーバ用の未補間データ)に対するデータ補間を実行し(ステップS120)、この処理により生成された補間済データをクライアント端末20に送信する(ステップS121)。クライアント端末20では補間部23がクライアント成績情報をサーバ10に送信し、クライアント情報取得部12がその情報を受信する(ステップS122、取得ステップ)。また、表示制御部24が補間部23で生成された補間済データとサーバ10から受信した補間済データとの結合を可視化する(ステップS123、出力ステップ)。   In the client terminal 20, the interpolation unit 23 receives the uninterpolated data and performs data interpolation on this data (step S119). At this time, the client information providing unit 22 acquires client result information obtained by executing the data interpolation. On the other hand, in the server 10, the interpolation unit 15 performs data interpolation on the non-interpolated data (server non-interpolated data) input from the allocating unit 14 (step S120), and the interpolated data generated by this processing is used as the client. It transmits to the terminal 20 (step S121). In the client terminal 20, the interpolation unit 23 transmits the client result information to the server 10, and the client information acquisition unit 12 receives the information (step S122, acquisition step). Further, the display control unit 24 visualizes the combination of the interpolated data generated by the interpolation unit 23 and the interpolated data received from the server 10 (step S123, output step).

本実施形態では、次のデータ補間(次の未補間データを補間する処理)を実行する際には、決定部13がクライアント環境情報およびクライアント成績情報を入力とする機械学習などのアルゴリズムを用いて、クライアント端末20とサーバ10との間のデータ補間の処理割合を決定(再設定)する(ステップS124、決定ステップ)。クライアント端末20が次のデータを要求すると(ステップS125)、割当部14が次の未補間データをデータベース30から抽出し、最新の処理割合(再設定された処理割合)に基づいてその未補間データをクライアント端末20およびサーバ10に割り当てる(ステップS126、割当ステップ)。割当部14はクライアント端末20に割り当てた未補間データ(クライアント端末用の未補間データ)をクライアント端末20に送信する(ステップS127)。   In the present embodiment, when executing the next data interpolation (processing for interpolating the next uninterpolated data), the determination unit 13 uses an algorithm such as machine learning with the client environment information and the client performance information as inputs. Then, the processing rate of data interpolation between the client terminal 20 and the server 10 is determined (reset) (step S124, determination step). When the client terminal 20 requests the next data (step S125), the allocating unit 14 extracts the next uninterpolated data from the database 30, and the uninterpolated data based on the latest processing ratio (reset processing ratio). Are allocated to the client terminal 20 and the server 10 (step S126, allocation step). The allocating unit 14 transmits uninterpolated data (uninterpolated data for the client terminal) allocated to the client terminal 20 to the client terminal 20 (step S127).

クライアント端末20では、補間部23がその未補間データを受信し、このデータに対するデータ補間を実行するとともに(ステップS128)、クライアント情報提供部22がそのデータ補間の実行により得られるクライアント成績情報を取得する。一方で、サーバ10では補間部15が残りの未補間データ(サーバ用の未補間データ)に対するデータ補間を実行し(ステップS129)、この処理により生成された補間済データをクライアント端末20に送信する(ステップS130)。クライアント端末20では、補間部23が次のクライアント成績情報をサーバ10に送信し、クライアント情報取得部12がその情報を受信する(ステップS131、取得ステップ)。また、表示制御部24が次の補間済データの結合を可視化する(ステップS132、出力ステップ)。一方、サーバ10では、決定部13がクライアント環境情報および新たに得られたクライアント成績情報を入力とする機械学習などのアルゴリズムを用いて、クライアント端末20とサーバ10との間のデータ補間の処理割合を決定(再設定)する(ステップS133、決定ステップ)。   In the client terminal 20, the interpolation unit 23 receives the uninterpolated data, performs data interpolation on this data (step S128), and the client information providing unit 22 acquires client performance information obtained by executing the data interpolation. To do. On the other hand, in the server 10, the interpolation unit 15 performs data interpolation on the remaining uninterpolated data (server non-interpolated data) (step S129), and transmits the interpolated data generated by this processing to the client terminal 20. (Step S130). In the client terminal 20, the interpolation unit 23 transmits the next client result information to the server 10, and the client information acquisition unit 12 receives the information (step S131, acquisition step). Further, the display control unit 24 visualizes the combination of the next interpolated data (step S132, output step). On the other hand, in the server 10, the processing ratio of data interpolation between the client terminal 20 and the server 10 using an algorithm such as machine learning in which the determination unit 13 receives the client environment information and the newly obtained client performance information. Is determined (reset) (step S133, determination step).

分散処理システム1はこのようにステップS124〜S132の処理を繰り返すことで、クライアント端末20とサーバ10との間の処理割合を動的に調整しながら一連のデータ補間を実行して、処理割合を適正値に近づけていくことができる。その結果、分散処理を効率的に実行することができる。また、データ補間および可視化が繰り返されることで、ユーザは空間R内の環境の変化(例えば、時間の経過に伴う環境値の変化)を把握することができる。   The distributed processing system 1 repeats the processing of steps S124 to S132 in this manner, thereby executing a series of data interpolation while dynamically adjusting the processing ratio between the client terminal 20 and the server 10, and the processing ratio is set. It can be close to the appropriate value. As a result, distributed processing can be executed efficiently. Further, by repeating the data interpolation and visualization, the user can grasp a change in the environment in the space R (for example, a change in the environmental value with the passage of time).

なお、各ステップの実行順序は図5,6に示したものに限定されない。例えば、時間軸に沿ったステップS114,S115の処理の実行タイミングが前後してもよいし、ステップS121,S122(またはステップS130,131)の処理の実行タイミングが前後してもよい。   Note that the execution order of the steps is not limited to that shown in FIGS. For example, the execution timing of the processes in steps S114 and S115 along the time axis may be changed, or the execution timing of the processes in steps S121 and S122 (or steps S130 and 131) may be changed.

次に、図7を用いて、分散処理システム1を実現するための分散処理プログラムPを説明する。分散処理プログラムPは、コンピュータをサーバ10として機能させるためのサーバプログラムP1と、コンピュータをクライアント端末20として機能させるためのクライアントプログラムP2とを備える。プログラムを記述する言語は任意に定めてよいが、一例として、サーバプログラムP1をC++で記述し、クライアントプログラムP2をJavaScript(商標または登録商標)で記述することが考えられる。   Next, a distributed processing program P for realizing the distributed processing system 1 will be described with reference to FIG. The distributed processing program P includes a server program P1 for causing the computer to function as the server 10 and a client program P2 for causing the computer to function as the client terminal 20. The language in which the program is described may be arbitrarily determined. As an example, it is conceivable that the server program P1 is described in C ++ and the client program P2 is described in JavaScript (trademark or registered trademark).

サーバプログラムP1は、メインモジュールP10、ページ提供モジュールP11、クライアント情報取得モジュールP12、決定モジュールP13、割当モジュールP14、および補間モジュールP15を備える。メインモジュールP10は、サーバ側の機能を統括的に制御する部分である。ページ提供モジュールP11、クライアント情報取得モジュールP12、決定モジュールP13、割当モジュールP14、および補間モジュールP15を実行することにより実現される機能はそれぞれ、上記のページ提供部11、クライアント情報取得部12、決定部13、割当部14、および補間部15の機能と同様である。   The server program P1 includes a main module P10, a page providing module P11, a client information acquisition module P12, a determination module P13, an allocation module P14, and an interpolation module P15. The main module P10 is a part that comprehensively controls functions on the server side. The functions realized by executing the page providing module P11, the client information acquiring module P12, the determining module P13, the assigning module P14, and the interpolation module P15 are respectively the page providing unit 11, the client information acquiring unit 12, and the determining unit. 13, the functions of the assigning unit 14 and the interpolation unit 15 are the same.

クライアントプログラムP2は、メインモジュールP20、ページ取得モジュールP21、クライアント情報提供モジュールP22、補間モジュールP23、および表示制御モジュールP24を備える。メインモジュールP20は、クライアント側の機能を統括的に制御する部分である。ページ取得モジュールP21、クライアント情報提供モジュールP22、補間モジュールP23、および表示制御モジュールP24を実行することにより実現される機能はそれぞれ、上記のページ取得部21、クライアント情報提供部22、補間部23、および表示制御部24の機能と同様である。   The client program P2 includes a main module P20, a page acquisition module P21, a client information provision module P22, an interpolation module P23, and a display control module P24. The main module P20 is a part that comprehensively controls the functions on the client side. The functions realized by executing the page acquisition module P21, the client information provision module P22, the interpolation module P23, and the display control module P24 are respectively the page acquisition unit 21, the client information provision unit 22, the interpolation unit 23, and The function is the same as that of the display control unit 24.

サーバプログラムP1およびクライアントプログラムP2はそれぞれ、CD−ROMやDVD−ROM、半導体メモリなどの有形の記録媒体に固定的に記録された上で提供されてもよい。あるいは、これらのプログラムP1,P2は、搬送波に重畳されたデータ信号として通信ネットワークを介して提供されてもよい。   The server program P1 and the client program P2 may be provided after being fixedly recorded on a tangible recording medium such as a CD-ROM, a DVD-ROM, or a semiconductor memory. Alternatively, these programs P1 and P2 may be provided via a communication network as data signals superimposed on a carrier wave.

以上説明したように、本発明の一側面に係る分散処理システムは、クライアント端末とサーバとを備える分散処理システムであって、クライアント端末の環境または動作結果を示すクライアント情報を該クライアント端末から取得する取得部と、取得部により取得されたクライアント情報を用いる機械学習を実行することでクライアント端末の処理能力を推定し、推定された処理能力に基づいてクライアント端末とサーバとの間の処理割合を決定する決定部であって、処理割合が、未処理データを用いたデータ処理を実行する割合である、該決定部と、決定部により決定された処理割合に基づいて、クライアント端末およびサーバに未処理データを割り当てる割当部と、クライアント端末におけるデータ処理により得られた処理済データと、サーバにおけるデータ処理により得られた処理済データとの結合を、クライアント端末から出力する出力部とを備える。   As described above, the distributed processing system according to one aspect of the present invention is a distributed processing system including a client terminal and a server, and acquires client information indicating an environment or an operation result of the client terminal from the client terminal. The processing capability of the client terminal is estimated by executing the machine learning using the acquisition unit and the client information acquired by the acquisition unit, and the processing ratio between the client terminal and the server is determined based on the estimated processing capability The processing unit is a rate at which data processing using unprocessed data is performed. Based on the determination unit and the processing rate determined by the determination unit, the client terminal and the server are not processed. An assigning unit for assigning data, processed data obtained by data processing at the client terminal, The binding between the obtained processed data by the data processing in over server, and an output unit for outputting the client terminal.

本発明の一側面に係る分散処理方法は、クライアント端末とサーバとを備える分散処理システムにより実行される分散処理方法であって、クライアント端末の環境または動作結果を示すクライアント情報を該クライアント端末から取得する取得ステップと、取得ステップにおいて取得されたクライアント情報を用いる機械学習を実行することでクライアント端末の処理能力を推定し、推定された処理能力に基づいてクライアント端末とサーバとの間の処理割合を決定する決定ステップであって、処理割合が、未処理データを用いたデータ処理を実行する割合である、該決定ステップと、決定ステップにおいて決定された処理割合に基づいて、クライアント端末およびサーバに未処理データを割り当てる割当ステップと、クライアント端末におけるデータ処理により得られた処理済データと、サーバにおけるデータ処理により得られた処理済データとの結合を、クライアント端末から出力する出力ステップとを含む。   A distributed processing method according to an aspect of the present invention is a distributed processing method executed by a distributed processing system including a client terminal and a server, and acquires client information indicating an environment or an operation result of the client terminal from the client terminal. And the processing capability of the client terminal is estimated by executing machine learning using the client information acquired in the acquisition step, and the processing ratio between the client terminal and the server is calculated based on the estimated processing capability. A determination step for determining, wherein the processing rate is a rate at which data processing using unprocessed data is executed, and based on the determination rate and the processing rate determined in the determination step, An allocation step for assigning process data and a client terminal That the processed data obtained by the data processing, the bond between the obtained processed data by the data processing in the server, and an output step of outputting from the client terminal.

本発明の一側面に係る分散処理プログラムは、クライアント端末とサーバとを備える分散処理システムにより実行される分散処理方法を、少なくとも2台のコンピュータを備えるコンピュータシステムに実行させる分散処理プログラムであって、分散処理方法が、クライアント端末の環境または動作結果を示すクライアント情報を該クライアント端末から取得する取得ステップと、取得ステップにおいて取得されたクライアント情報を用いる機械学習を実行することでクライアント端末の処理能力を推定し、推定された処理能力に基づいてクライアント端末とサーバとの間の処理割合を決定する決定ステップであって、処理割合が、未処理データを用いたデータ処理を実行する割合である、該決定ステップと、決定ステップにおいて決定された処理割合に基づいて、クライアント端末およびサーバに未処理データを割り当てる割当ステップと、クライアント端末におけるデータ処理により得られた処理済データと、サーバにおけるデータ処理により得られた処理済データとの結合を、クライアント端末から出力する出力ステップとを含む。   A distributed processing program according to one aspect of the present invention is a distributed processing program that causes a computer system including at least two computers to execute a distributed processing method executed by a distributed processing system including a client terminal and a server. The distributed processing method obtains client information indicating an environment or an operation result of the client terminal from the client terminal, and performs machine learning using the client information obtained in the obtaining step, thereby increasing the processing capability of the client terminal. Estimating and determining a processing rate between the client terminal and the server based on the estimated processing capability, wherein the processing rate is a rate of executing data processing using unprocessed data, The decision step and the decision step Based on the processing ratio, the allocation step of allocating unprocessed data to the client terminal and the server, the combination of the processed data obtained by the data processing at the client terminal and the processed data obtained by the data processing at the server, An output step of outputting from the client terminal.

このような側面においては、クライアント端末の環境または動作結果に基づく機械学習によりクライアント端末の処理能力が推定され、その推定結果に基づいてクライアント端末とサーバとの処理割合が決定される。したがって、クライアント端末の環境または動作結果を考慮して、クライアント端末とサーバとの間で同様のデータ処理を分散させることができる。その結果、システム全体の負荷を効率的に分散させることができる。   In such an aspect, the processing capability of the client terminal is estimated by machine learning based on the environment or operation result of the client terminal, and the processing ratio between the client terminal and the server is determined based on the estimation result. Therefore, the same data processing can be distributed between the client terminal and the server in consideration of the environment or operation result of the client terminal. As a result, the entire system load can be efficiently distributed.

クライアントの環境または動作結果を把握できないと、サーバに比べて処理能力が低いクライアント端末に大きな負荷が掛かってシステム全体の処理効率が低下する可能性がある。一方で、各クライアント端末の動作環境および仕様は区々なので、処理割合を一律に決めてしまっては、多種多様なクライアント端末に対して、許容可能な応答時間内で処理結果を提供することが非常に困難である。これに対して、本発明の上記側面では、クライアント端末の環境または動作結果を考慮することで、クライアント端末とサーバとの間で同様のデータ処理を分散させることができる。例えば、一般に演算の負荷が高いデータ補間を、ユーザが許容する時間内にクライアント端末およびサーバの双方で処理することができる。   If the client environment or operation results cannot be grasped, there is a possibility that a large load is applied to a client terminal having a lower processing capacity than that of the server, and the processing efficiency of the entire system is lowered. On the other hand, since the operating environment and specifications of each client terminal vary, if the processing ratio is uniformly determined, processing results can be provided to a wide variety of client terminals within an acceptable response time. It is very difficult. On the other hand, in the above aspect of the present invention, similar data processing can be distributed between the client terminal and the server by considering the environment or operation result of the client terminal. For example, data interpolation that is generally computationally expensive can be processed by both the client terminal and the server within the time allowed by the user.

他の側面に係る分散処理システムでは、クライアント情報が、クライアント端末のオペレーティングシステムおよびウェブブラウザを少なくとも示すクライアント環境情報と、クライアント端末でのデータ処理の動作結果を示すクライアント成績情報とを含み、決定部が、クライアント環境情報を機械学習の入力パラメータとして用い、クライアント成績情報を機械学習の正解データとして用いてもよい。   In the distributed processing system according to another aspect, the client information includes client environment information indicating at least the operating system and the web browser of the client terminal, and client result information indicating an operation result of data processing in the client terminal, and a determination unit However, the client environment information may be used as an input parameter for machine learning, and the client performance information may be used as correct data for machine learning.

オペレーティングシステムおよびウェブブラウザの情報を取得することでクライアント端末の大凡の種類または仕様がわかり、ひいてはクライアント端末の処理能力を推定することが可能になる。例えば、クライアント端末がデスクトップマシンか携帯端末かを特定して、処理能力が高いか低いかを大雑把に推定することができる。一方で、クライアント端末でのデータ処理の実際の動作結果が正解データとして与えられる。その結果、機械学習において、クライアント端末の大凡の処理能力と実際の動作結果とを考慮して、そのクライアント端末にとって適切な処理割合を決定することができる。例えば、携帯端末は一般にデスクトップマシンに比べて処理能力が低いので、携帯端末の処理割合はデスクトップマシンの処理割合よりも低くすることが望ましいと考えられる。   By acquiring information on the operating system and the web browser, the general type or specification of the client terminal can be known, and as a result, the processing capability of the client terminal can be estimated. For example, by specifying whether the client terminal is a desktop machine or a portable terminal, it is possible to roughly estimate whether the processing capability is high or low. On the other hand, the actual operation result of the data processing at the client terminal is given as correct data. As a result, in machine learning, it is possible to determine an appropriate processing ratio for the client terminal in consideration of the approximate processing capability of the client terminal and the actual operation result. For example, since a mobile terminal generally has a lower processing capacity than a desktop machine, it is desirable that the processing rate of the mobile terminal be lower than the processing rate of the desktop machine.

他の側面に係る分散処理システムでは、クライアント環境情報が、クライアント端末とサーバとの間の通信速度をさらに示してもよい。   In the distributed processing system according to another aspect, the client environment information may further indicate a communication speed between the client terminal and the server.

クライアント端末とサーバとの間の通信速度は、クライアント端末にどのくらいの量のデータを渡すべきかを決定する際に参考になる。例えば、データ補間においてはある空間での補間済データが該空間での未補間データの何倍にも膨れ上がることがある。そのため、通信速度が低い場合には、それが高い場合よりもクライアント端末の処理割合を高くして未補間データを多めにクライアント端末に送信することで、演算のコストが必要以上に大きくなるのを防ぎつつデータ通信のコストを抑えることが考えられる。クライアント端末そのものの環境だけでなく通信速度も考慮することで、クライアント端末にとって適切な処理割合を決定することができる。   The communication speed between the client terminal and the server is helpful in determining how much data should be passed to the client terminal. For example, in data interpolation, interpolated data in a certain space may swell many times as much as uninterpolated data in the space. Therefore, when the communication speed is low, the processing rate of the client terminal is increased compared to when the communication speed is high, and a large amount of uninterpolated data is transmitted to the client terminal. It is conceivable to reduce the cost of data communication while preventing it. By considering not only the environment of the client terminal itself but also the communication speed, it is possible to determine an appropriate processing ratio for the client terminal.

他の側面に係る分散処理システムでは、決定部が、サンプル数が閾値に達するまでは処理割合をランダムに決定し、サンプル数が閾値に達した場合には、クライアント端末でのデータ処理の成績が上位のサンプル群からなる上位集団を用いて処理割合を決定してもよい。ここで、サンプルは、クライアント端末でのデータ処理の動作結果を示すクライアント成績情報である。   In the distributed processing system according to another aspect, the determination unit randomly determines the processing rate until the number of samples reaches the threshold value, and when the number of samples reaches the threshold value, the data processing result at the client terminal is The processing ratio may be determined using an upper group consisting of upper sample groups. Here, the sample is client result information indicating an operation result of data processing at the client terminal.

サンプル(クライアント成績情報)がある程度多く集まるまでは処理割合をランダムに決めることで、あたかもベンチマークテストを行うように、様々な処理割合についてそれが妥当な値か否かを検証することができる。そして、ある程度多くのサンプルが集まったときには、クライアント端末でのデータ処理の成績が上位のサンプル群を用いて処理割合が決められるので、クライアント端末にとって適切な処理割合を決定することができる。   By randomly determining the processing ratio until a large number of samples (client performance information) are gathered, it is possible to verify whether or not the various processing ratios are appropriate values as if performing a benchmark test. When a certain number of samples are collected, the processing rate is determined using a sample group having a higher data processing result at the client terminal, so that a processing rate appropriate for the client terminal can be determined.

他の側面に係る分散処理システムでは、決定部が、処理割合の最適解を獲得したと判定した場合には該最適解を前記処理割合として決定してもよい。   In the distributed processing system according to another aspect, when the determination unit determines that the optimal solution of the processing rate has been acquired, the optimal solution may be determined as the processing rate.

最適解が見つかったのであればその最適解を処理割合として利用し続けるのが効率的である。なぜなら、最適解を探索し続けることに要する処理時間を省略できると共に、クライアント端末とサーバとの間で、最も適切と思われる処理割合でデータ処理を分散させ続けることができるからである。   If an optimal solution is found, it is efficient to continue using the optimal solution as a processing ratio. This is because the processing time required to continue searching for the optimal solution can be omitted, and the data processing can be continuously distributed between the client terminal and the server at a processing rate that seems to be most appropriate.

他の側面に係る分散処理システムでは、データ処理がデータ補間であってもよい。一般にデータ補間は処理負荷が高く、また、補間処理によりデータ量が飛躍的に増える。したがって、サーバに比べて処理能力が低いクライアント端末にその処理をさせる際には、クライアントに送信する未処理データ(未補間データ)の量を調整する必要がある。データ補間に本発明を適用することで、効率的な処理が期待できる。   In the distributed processing system according to another aspect, the data processing may be data interpolation. In general, data interpolation has a high processing load, and the amount of data greatly increases by interpolation processing. Therefore, when a client terminal having a processing capability lower than that of the server performs the processing, it is necessary to adjust the amount of unprocessed data (uninterpolated data) transmitted to the client. By applying the present invention to data interpolation, efficient processing can be expected.

他の側面に係る分散処理システムでは、未処理データが、空間内の環境値を示すデータであり、出力部が、処理済データの結合を3次元画像により表示してもよい。   In the distributed processing system according to another aspect, the unprocessed data may be data indicating an environmental value in the space, and the output unit may display the combination of the processed data as a three-dimensional image.

この場合には、空間内の環境値を補間して、空間内の環境の様子を分かりやすい態様でユーザに提示することができる。拡張現実感を提供するような高度な画像処理ではそれ相応の演算およびデータ通信が必要であるが、上記の処理によりクライアント端末とサーバとの間でデータ補間を分散させることで、環境値を補間して3次元画像により可視化する一連の処理をほぼリアルタイムで実行することが可能になる。   In this case, the environmental value in the space can be interpolated to present the state of the environment in the space to the user in an easy-to-understand manner. Advanced image processing that provides augmented reality requires appropriate computation and data communication. However, by interpolating data interpolation between the client terminal and the server by the above processing, environment values are interpolated. Thus, it becomes possible to execute a series of processes visualized by a three-dimensional image in almost real time.

以上、本発明をその実施形態に基づいて詳細に説明した。しかし、本発明は上記実施形態に限定されるものではない。本発明は、その要旨を逸脱しない範囲で様々な変形が可能である。   The present invention has been described in detail based on the embodiments. However, the present invention is not limited to the above embodiment. The present invention can be variously modified without departing from the gist thereof.

クライアント端末の処理能力を推定するための機械学習の具体的なアルゴリズムは限定されない。また、上記実施形態では遺伝的アルゴリズムを用いたが、このアルゴリズムの利用は必須ではない。あるいは、遺伝的アルゴリズムに代えて他のアルゴリズムを用いてもよい。   The specific algorithm of machine learning for estimating the processing capability of the client terminal is not limited. Moreover, although the genetic algorithm was used in the said embodiment, utilization of this algorithm is not essential. Alternatively, another algorithm may be used instead of the genetic algorithm.

上記実施形態ではクライアント環境情報としてOSおよびブラウザの情報と通信速度とを用いたが、クライアント環境情報はこれらのうちの一部のみであってもよいし、これらとは異なる情報(例えば、CPUやメモリ、ディスクI/Oなどのハードウェアに関する情報)を用いてもよい。   In the above embodiment, the OS and browser information and the communication speed are used as the client environment information. However, the client environment information may be only a part of these, or information different from these (for example, CPU and Information on hardware such as memory and disk I / O) may be used.

上記実施形態ではクライアント成績情報として、クライアント端末20に割り当てられた未補間データを入力とするデータ補間の処理時間と総処理時間とを用いたが、これら2種類のうちのどちらか一方のみの処理時間をクライアント成績情報として用いてもよい。あるいは、データ補間が実行されている間のCPU稼働率またはメモリ使用量の統計値(例えば平均値や中央値など)をクライアント成績情報として用いてもよい。   In the above embodiment, the data processing time and the total processing time using the uninterpolated data assigned to the client terminal 20 as input are used as the client result information, but only one of these two types of processing is used. Time may be used as client performance information. Alternatively, a CPU operating rate or a memory usage statistical value (for example, an average value or a median value) while data interpolation is being performed may be used as client performance information.

上記実施形態では分散処理システム1はクライアント端末20からデータ要求を受け付ける度に処理割合を調整したが、処理割合を動的に調整するタイミングはこれに限定されない。例えば、分散処理システムの決定部は一定の時間間隔で(すなわち、定期的に)処理割合を決めてもよいし、ユーザの明示の指示に応答して処理割合を決めてもよい。   In the above embodiment, the distributed processing system 1 adjusts the processing ratio every time a data request is received from the client terminal 20, but the timing for dynamically adjusting the processing ratio is not limited to this. For example, the determination unit of the distributed processing system may determine the processing rate at regular time intervals (that is, periodically), or may determine the processing rate in response to a user's explicit instruction.

上記実施形態では表示制御部24が補間済データの結合をウェブブラウザ上に3次元画像により可視化したが、補間済データの出力方法は限定されない。例えば、分散処理システムは補間済みデータの結合を2次元画像の態様で表示してもよいし、ウェブブラウザ以外のアプリケーション上に2次元画像または3次元画像の態様で表示してもよい。分散処理システムは補間済みデータの結合の3次元画像をプリンタに出力してもよいし、メモリやデータベースなどの記憶装置に格納してもよい。あるいは、分散処理システムは補間済みデータの結合を通信ネットワーク経由で他のコンピュータシステムに出力してもよい。   In the above embodiment, the display control unit 24 visualizes the combination of the interpolated data on the web browser with a three-dimensional image, but the output method of the interpolated data is not limited. For example, the distributed processing system may display the combination of the interpolated data in the form of a two-dimensional image, or may display it in the form of a two-dimensional image or a three-dimensional image on an application other than the web browser. The distributed processing system may output a combined three-dimensional image of interpolated data to a printer or store it in a storage device such as a memory or a database. Alternatively, the distributed processing system may output the interpolated data combination to another computer system via a communication network.

上記実施形態では分散処理システム1が空間内の環境値を補間したが、本発明の分散処理システムにより処理される未補間データが示す内容は何ら限定されない。分散処理システムは、画像データまたは音声データの補間などのような任意のデータ補間処理に適用可能である。また、上記実施形態では本発明をデータ補間に適用したが、データ収集や演算などの他の任意のデータ処理に本発明を適用してもよい。   In the above embodiment, the distributed processing system 1 interpolates the environment values in the space, but the content indicated by the non-interpolated data processed by the distributed processing system of the present invention is not limited at all. The distributed processing system can be applied to arbitrary data interpolation processing such as interpolation of image data or audio data. In the above embodiment, the present invention is applied to data interpolation. However, the present invention may be applied to other arbitrary data processing such as data collection and calculation.

1…分散処理システム、10…サーバ、11…ページ提供部、12…クライアント情報取得部、13…決定部、14…割当部、15…補間部、20…クライアント端末、21…ページ取得部、22…クライアント情報提供部、23…補間部、24…表示制御部、30…データベース、P…分散処理プログラム、P1…サーバプログラム、P10…メインモジュール、P11…ページ提供モジュール、P12…クライアント情報取得モジュール、P13…決定モジュール、P14…割当モジュール、P15…補間モジュール、P2…クライアントプログラム、P20…メインモジュール、P21…ページ取得モジュール、P22…クライアント情報提供モジュール、P23…補間モジュール、P24…表示制御モジュール。
DESCRIPTION OF SYMBOLS 1 ... Distributed processing system, 10 ... Server, 11 ... Page provision part, 12 ... Client information acquisition part, 13 ... Determination part, 14 ... Assignment part, 15 ... Interpolation part, 20 ... Client terminal, 21 ... Page acquisition part, 22 ... Client information providing unit, 23 ... Interpolating unit, 24 ... Display control unit, 30 ... Database, P ... Distributed processing program, P1 ... Server program, P10 ... Main module, P11 ... Page providing module, P12 ... Client information obtaining module, P13 ... determination module, P14 ... allocation module, P15 ... interpolation module, P2 ... client program, P20 ... main module, P21 ... page acquisition module, P22 ... client information provision module, P23 ... interpolation module, P24 ... display control module.

Claims (7)

クライアント端末とサーバとを備え、該クライアント端末および該サーバのそれぞれが、未処理データを用いたデータ処理を実行する、分散処理システムであって、
前記クライアント端末のオペレーティングシステムおよびウェブブラウザと前記クライアント端末および前記サーバの間の通信速度とを示すクライアント環境情報と、前記クライアント端末での前回のデータ処理の動作結果を示すクライアント成績情報とを含むクライアント情報を該クライアント端末から取得する取得部と、
前記クライアント環境情報を入力パラメータとし且つ前記クライアント成績情報を正解データとする機械学習を実行することで前記クライアント端末の処理能力を推定し、推定された処理能力に基づいて前記クライアント端末と前記サーバとの間の処理割合を決定する決定部であって、前記処理割合が、次の未処理データを用いた次のデータ処理を実行する割合である、該決定部と、
前記決定部により決定された処理割合に基づいて、前記クライアント端末および前記サーバに前記次の未処理データを割り当てる割当部と、
前記クライアント端末における前記次のデータ処理により得られた処理済データと、前記サーバにおける前記次のデータ処理により得られた処理済データとの結合を、前記クライアント端末から出力する出力部と
を備える分散処理システム。
A distributed processing system comprising a client terminal and a server , wherein each of the client terminal and the server executes data processing using unprocessed data ,
Client including client environment information indicating a communication speed between the operating system and web browser of the client terminal and the client terminal and the server, and client result information indicating an operation result of previous data processing in the client terminal An acquisition unit for acquiring information from the client terminal;
The processing capability of the client terminal is estimated by executing machine learning using the client environment information as an input parameter and the client performance information as correct data. Based on the estimated processing capability, the client terminal and the server a determination unit that determines the processing percentage between the treat rate is the rate at which to execute the next data processing using the following raw data, and said determination unit,
An allocating unit that allocates the next unprocessed data to the client terminal and the server, based on the processing rate determined by the determining unit;
Dispersion comprising the processed data obtained by the next data processing in the client terminal, the bond between the obtained processed data by the next data processing in the server, and an output unit for outputting from said client terminal Processing system.
前記決定部が、サンプル数が閾値に達するまでは前記処理割合をランダムに決定し、前記サンプル数が前記閾値に達した場合には、前記クライアント端末での前記データ処理の成績が上位のサンプル群からなる上位集団を用いて前記処理割合を決定し、ここで、前記サンプルは、前記クライアント成績情報である、
請求項に記載の分散処理システム。
The determination unit randomly determines the processing ratio until the number of samples reaches a threshold value, and when the number of samples reaches the threshold value, the data processing result at the client terminal is a high-order sample group using a higher population of determining the processing rate, wherein said sample is the client performance information,
The distributed processing system according to claim 1 .
前記決定部が、前記処理割合の最適解を獲得したと判定した場合には該最適解を前記処理割合として決定する、
請求項に記載の分散処理システム。
When the determination unit determines that the optimal solution of the processing rate has been acquired, the optimal solution is determined as the processing rate.
The distributed processing system according to claim 2 .
前記データ処理がデータ補間である、
請求項1〜のいずれか一項に記載の分散処理システム。
The data processing is data interpolation;
The distributed processing system as described in any one of Claims 1-3 .
前記未処理データが、空間内の環境値を示すデータであり、
前記出力部が、前記処理済データの結合を3次元画像により表示する、
請求項に記載の分散処理システム。
The raw data is data indicating an environmental value in space;
The output unit displays a combination of the processed data as a three-dimensional image;
The distributed processing system according to claim 4 .
クライアント端末とサーバとを備え、該クライアント端末および該サーバのそれぞれが、未処理データを用いたデータ処理を実行する、分散処理システムにより実行される分散処理方法であって、
前記クライアント端末のオペレーティングシステムおよびウェブブラウザと前記クライアント端末および前記サーバの間の通信速度とを示すクライアント環境情報と、前記クライアント端末での前回のデータ処理の動作結果を示すクライアント成績情報とを含むクライアント情報を該クライアント端末から取得する取得ステップと、
前記クライアント環境情報を入力パラメータとし且つ前記クライアント成績情報を正解データとする機械学習を実行することで前記クライアント端末の処理能力を推定し、推定された処理能力に基づいて前記クライアント端末と前記サーバとの間の処理割合を決定する決定ステップであって、前記処理割合が、次の未処理データを用いた次のデータ処理を実行する割合である、該決定ステップと、
前記決定ステップにおいて決定された処理割合に基づいて、前記クライアント端末および前記サーバに前記次の未処理データを割り当てる割当ステップと、
前記クライアント端末における前記次のデータ処理により得られた処理済データと、前記サーバにおける前記次のデータ処理により得られた処理済データとの結合を、前記クライアント端末から出力する出力ステップと
を含む分散処理方法。
A distributed processing method executed by a distributed processing system , comprising a client terminal and a server , wherein each of the client terminal and the server executes data processing using unprocessed data ,
Client including client environment information indicating a communication speed between the operating system and web browser of the client terminal and the client terminal and the server, and client result information indicating an operation result of previous data processing in the client terminal An acquisition step of acquiring information from the client terminal;
The processing capability of the client terminal is estimated by executing machine learning using the client environment information as an input parameter and the client performance information as correct data. Based on the estimated processing capability, the client terminal and the server a determining step of determining a processing percentage between the treat rate is the rate at which to execute the next data processing using the following raw data, and said determining step,
An allocating step of allocating the next unprocessed data to the client terminal and the server based on the processing rate determined in the determining step;
Dispersion containing the processed data obtained by the next data processing in the client terminal, the bond between the obtained processed data by the next data processing in the server, and an output step of outputting from said client terminal Processing method.
クライアント端末とサーバとを備え、該クライアント端末および該サーバのそれぞれが、未処理データを用いたデータ処理を実行する、分散処理システムにより実行される分散処理方法を、少なくとも2台のコンピュータを備えるコンピュータシステムに実行させる分散処理プログラムであって、
前記分散処理方法が、
前記クライアント端末のオペレーティングシステムおよびウェブブラウザと前記クライアント端末および前記サーバの間の通信速度とを示すクライアント環境情報と、前記クライアント端末での前回のデータ処理の動作結果を示すクライアント成績情報とを含むクライアント情報を該クライアント端末から取得する取得ステップと、
前記クライアント環境情報を入力パラメータとし且つ前記クライアント成績情報を正解データとする機械学習を実行することで前記クライアント端末の処理能力を推定し、推定された処理能力に基づいて前記クライアント端末と前記サーバとの間の処理割合を決定する決定ステップであって、前記処理割合が、次の未処理データを用いた次のデータ処理を実行する割合である、該決定ステップと、
前記決定ステップにおいて決定された処理割合に基づいて、前記クライアント端末および前記サーバに前記次の未処理データを割り当てる割当ステップと、
前記クライアント端末における前記次のデータ処理により得られた処理済データと、前記サーバにおける前記次のデータ処理により得られた処理済データとの結合を、前記クライアント端末から出力する出力ステップと
を含む、
分散処理プログラム。
A computer comprising a client terminal and a server , wherein each of the client terminal and the server executes data processing using unprocessed data, and a distributed processing method executed by a distributed processing system is provided with at least two computers A distributed processing program to be executed by a system,
The distributed processing method includes:
Client including client environment information indicating a communication speed between the operating system and web browser of the client terminal and the client terminal and the server, and client result information indicating an operation result of previous data processing in the client terminal An acquisition step of acquiring information from the client terminal;
The processing capability of the client terminal is estimated by executing machine learning using the client environment information as an input parameter and the client performance information as correct data. Based on the estimated processing capability, the client terminal and the server a determining step of determining a processing percentage between the treat rate is the rate at which to execute the next data processing using the following raw data, and said determining step,
An allocating step of allocating the next unprocessed data to the client terminal and the server based on the processing rate determined in the determining step;
Wherein comprising a processed data obtained by the next data processing in the client terminal, the bond between the obtained processed data by the next data processing in the server, and an output step of outputting from said client terminal,
Distributed processing program.
JP2014239141A 2014-11-26 2014-11-26 Distributed processing system, distributed processing method, and distributed processing program Active JP6486080B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014239141A JP6486080B2 (en) 2014-11-26 2014-11-26 Distributed processing system, distributed processing method, and distributed processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014239141A JP6486080B2 (en) 2014-11-26 2014-11-26 Distributed processing system, distributed processing method, and distributed processing program

Publications (2)

Publication Number Publication Date
JP2016099960A JP2016099960A (en) 2016-05-30
JP6486080B2 true JP6486080B2 (en) 2019-03-20

Family

ID=56077934

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014239141A Active JP6486080B2 (en) 2014-11-26 2014-11-26 Distributed processing system, distributed processing method, and distributed processing program

Country Status (1)

Country Link
JP (1) JP6486080B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10880365B2 (en) 2018-03-08 2020-12-29 Ricoh Company, Ltd. Information processing apparatus, terminal apparatus, and method of processing information

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8935317B2 (en) * 2010-06-23 2015-01-13 Microsoft Corporation Dynamic partitioning of applications between clients and servers

Also Published As

Publication number Publication date
JP2016099960A (en) 2016-05-30

Similar Documents

Publication Publication Date Title
US9407651B2 (en) Anomaly detection in network-site metrics using predictive modeling
US10417650B1 (en) Distributed and automated system for predicting customer lifetime value
US9799037B2 (en) Service management using user experience metrics
CN103383655B (en) For the performance interference model for the workload that merging is managed in perceiving cloud in QOS
US9396444B2 (en) Predictive analytics with forecasting model selection
WO2019114423A1 (en) Method and apparatus for merging model prediction values, and device
US10360574B2 (en) Systems and methods for response rate determination and offer selection
US20150227964A1 (en) Revenue Estimation through Ensemble Modeling
CN105631698A (en) Risk quantification for policy deployment
US20170061307A1 (en) Identifying factors that contribute to a metric anomaly
US20200286154A1 (en) Utilizing item-level importance sampling models for digital content selection policies
US20190138912A1 (en) Determining insights from different data sets
CN110020877B (en) Click rate prediction method, click rate determination method and server
Baughman et al. Profiling and predicting application performance on the cloud
WO2016009282A1 (en) System and method for dynamically optimizing map destination routing performance
US20150161549A1 (en) Predicting outcomes of a modeled system using dynamic features adjustment
RU2665244C1 (en) Metric generalized parameter forming for a/b testing methods and system
US20200159866A1 (en) Perceived Web Page Loading Time
JP6486080B2 (en) Distributed processing system, distributed processing method, and distributed processing program
EP3005619A1 (en) Application ranking calculating apparatus and usage information collecting apparatus
CN112218114B (en) Video cache control method, device and computer readable storage medium
US9098863B2 (en) Compressed analytics data for multiple recurring time periods
JP2016099738A (en) Prediction system, prediction method, and prediction program
US11269974B1 (en) Learning ordinal regression model via divide-and-conquer technique
US20160019400A1 (en) Recommendation system for protecting user privacy

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180629

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180717

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180907

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: 20190212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190219

R150 Certificate of patent or registration of utility model

Ref document number: 6486080

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250