JP6486080B2 - Distributed processing system, distributed processing method, and distributed processing program - Google Patents
Distributed processing system, distributed processing method, and distributed processing program Download PDFInfo
- 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
Links
- 238000012545 processing Methods 0.000 title claims description 297
- 238000003672 processing method Methods 0.000 title claims description 16
- 238000004891 communication Methods 0.000 claims description 31
- 238000010801 machine learning Methods 0.000 claims description 26
- 230000007613 environmental effect Effects 0.000 claims description 13
- 239000006185 dispersion Substances 0.000 claims 2
- 238000000034 method Methods 0.000 description 35
- 230000006870 function Effects 0.000 description 33
- 230000008569 process Effects 0.000 description 20
- 238000004422 calculation algorithm Methods 0.000 description 14
- 238000005259 measurement Methods 0.000 description 9
- 230000004044 response Effects 0.000 description 6
- 230000003190 augmentative effect Effects 0.000 description 5
- 230000002068 genetic effect Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 4
- 238000012800 visualization Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000035772 mutation Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000013480 data collection Methods 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
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.
特許文献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.
以下、添付図面を参照しながら本発明の実施形態を詳細に説明する。なお、図面の説明において同一又は同等の要素には同一の符号を付し、重複する説明を省略する。 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
サーバ10は、インターネットやイントラネットなどの通信回線を通じてデータベース30および各クライアント端末20とデータ通信を行うことが可能なコンピュータである。サーバ10は1台のコンピュータにより構築されてもよいし複数のコンピュータにより構築されてもよい。サーバ10が複数のコンピュータから成る場合には、サーバ10の各機能要素がこれらのコンピュータにより分散処理される。もっとも、上記の通り、本実施形態の特徴はクライアントとサーバとの間の分散処理にあり、サーバ10を構成する複数のコンピュータ間の分散処理にあるわけではない。サーバ10の役割を担うコンピュータの種類は限定されず、例えば、据置型または携帯型のパーソナルコンピュータ(PC)を用いてもよいし、PCより高性能なコンピュータを用いてもよいし、ワークステーションを用いてもよい。
The
クライアント端末20は、分散処理システム1の最終的な処理結果、すなわち空間の環境の推定結果を表示するコンピュータであり、その推定結果に基づく拡張現実感をユーザに提供するコンピュータであるともいうことができる。本実施形態では、クライアント端末20はウェブブラウザを備え、そのウェブブラウザ上に推定結果が視覚的に表示されるものとする。ユーザはクライアント端末20を介して空間の環境の様子を直感的に捉えることができる。クライアント端末20として用いられるコンピュータの種類は限定されず、例えば、据置型または携帯型のPCを用いてもよいし、高機能携帯電話機(スマートフォン)や携帯電話機、携帯情報端末(PDA)、タブレットなどの携帯端末を用いてもよいし、ヘッドマウントディスプレイ(HMD)などのウェアラブル端末でもよい。一般に、クライアント端末20の処理能力(クライアント端末20に搭載されるハードウェア資源(CPUやメモリなど)の性能)は、サーバ10のそれよりも低い。
The
サーバ10またはクライアント端末20として用いられる個々のコンピュータ100の一般的なハードウェア構成を図2に示す。コンピュータ100は、オペレーティングシステムやアプリケーション・プログラムなどを実行するCPU(プロセッサ)101と、ROM及びRAMで構成される主記憶部102と、ハードディスクやフラッシュメモリなどで構成される補助記憶部103と、ネットワークカードあるいは無線通信モジュールで構成される通信制御部104と、キーボードやマウス、タッチパッドなどの入力装置105と、ディスプレイやタッチパネルなどの出力装置106とを備える。当然ながら、搭載されるハードウェアモジュールはコンピュータ100の種類により異なる。例えば、据置型のPCおよびワークステーションは入力装置および出力装置としてキーボード、マウス、およびモニタを備えることが多いが、スマートフォンおよびタブレットではタッチパネルが入力装置および出力装置として機能することが多い。
A general hardware configuration of each
後述するサーバ10およびクライアント端末20の各機能要素は、CPU101または主記憶部102の上に所定のソフトウェアを読み込ませ、CPU101の制御の下で通信制御部104や入力装置105、出力装置106などを動作させ、主記憶部102または補助記憶部103におけるデータの読み出し及び書き込みを行うことで実現される。処理に必要なデータまたはデータベースは主記憶部102または補助記憶部103内に格納される。
Each functional element of the
データベース30は、所定の時間間隔(例えば10分毎や1時間毎など)毎に複数のセンサSにより測定された複数の測定値を記憶する装置または機能要素である。例えば、データベース30は、8時、9時、10時、…の各時点における複数のセンサSの測定値を記憶する。データベース30の実装方法は限定されず、本実施形態のようにサーバ10とは別の装置であってもよいし、サーバ10内の補助記憶装置上に設けられてもよい。また、データベース30は関係データベースでもよいしCSVファイルでもよい。
The
測定値をデータベース30に蓄積する方法は限定されない。例えばセンサSがデータベース30と直接通信して測定値をデータベース30に格納してもよいし、別のコンピュータがセンサSから測定値を収集して、その値をデータベース30に格納してもよい。データベース30に格納される測定値は、データ補間の入力値として用いられる未補間データである。未補間データとは、データ補間がまだ施されていない生データ(raw data)である。
The method for accumulating the measured values in the
分散処理システム1の特徴はデータベース30に蓄積されたデータの処理方法にあるので、以下の説明は、処理対象の未補間データがデータベース30内に既に存在することを前提とする。
Since the characteristic of the distributed processing system 1 is the processing method of data stored in the
次に、サーバ10の機能構成を説明する。図1に示すように、サーバ10は機能的構成要素としてページ提供部11、クライアント情報取得部(取得部)12、決定部13、割当部14、および補間部15を備える。
Next, the functional configuration of the
ページ提供部11は、空間内の環境の様子を視覚的に表示するためのウェブページをクライアント端末20に提供する機能要素である。そのウェブページの要求(以下では「ページ要求」という)をクライアント端末20から受信すると、ページ提供部11は指定されたウェブページのスクリプト(以下では「ページデータ」という)をそのクライアント端末20に送信する。本実施形態では、ウェブページは例えばHTML(HyperText Markup Language)およびJavaScript(商標または登録商標)により記述されるが、ウェブページを記述する言語はこれらに限定されない。
The
ページデータには、クライアント端末20の環境または動作結果を示すクライアント情報を取得するためのスクリプトまたはプログラムが埋め込まれる。分散処理システム1はサーバ10とクライアント端末20との間でデータ補間を分散処理するが、これを実現するためにはクライアント端末20の処理能力を把握しなければならず、したがって、クライアント情報を取得する必要が生じる。本明細書における「クライアント端末の環境」とは、クライアント端末での処理効率に影響を与え得る動作環境のことであり、例えば、ハードウェア、ソフトウェア、または通信ネットワークに関する動作環境である。本明細書における「クライアント端末の動作結果」とは、クライアント端末がデータ補間を実行した際に測定される当該クライアント端末の処理能力であり、例えば、データ補間に要した時間(処理時間)やハードウェア資源の消費量などが挙げられる。本明細書では、クライアント情報は、クライアント端末の環境を示すクライアント環境情報と、クライアント端末の動作結果を示すクライアント成績情報とを含む。
In the page data, a script or program for acquiring client information indicating the environment of the
本実施形態では、クライアント環境情報は、クライアント端末20にインストールされているオペレーティングシステム(OS)およびウェブブラウザと、クライアント端末20とサーバ10との間の通信速度とを示すものとする。ただし、クライアント環境情報の内容はこれらに限定されない。
In this embodiment, the client environment information indicates an operating system (OS) and a web browser installed in the
クライアント端末20のOSおよびウェブブラウザの情報は、当該クライアント端末20で実行されるウェブブラウザ自身から取得することが可能である。具体的には、ユーザエージェント情報を解析することでウェブブラウザを特定でき、ウェブブラウザが動作しているプラットフォームの情報を解析することでOSを特定できる。これらの二つの情報からクライアント端末20を大まかに分類しておおよその性能を判定することができ、例えば、クライアント端末20がデスクトップPCか携帯端末かを判定できる。OSおよびウェブブラウザの情報を取得するためのclient_environment_acquire関数の擬似コードを以下に示す。
The OS and web browser information of the
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
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
クライアント端末で実行されるデータ補間の処理時間を取得するための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
決定部13は、クライアント端末20とサーバ10との間の処理割合を決定する機能要素である。本明細書における「処理割合」とはクライアント端末20とサーバ10との間でデータ補間を実行する割合であり、これは、処理される未補間データの割合であるともいえる。データ補間の全体または未補間データの全体を1として、クライアント端末20およびサーバ10の処理割合がそれぞれ0.3および0.7であれば、クライアント端末20が30%分の未補間データに対するデータ補間を実行し、サーバ10が残り70%分の未補間データに対するデータ補間を実行する。決定部13は決定した処理割合を割当部14に出力する。
The
決定部13は機械学習を実行することでクライアント端末20の処理能力を推定し、推定された処理能力に基づいて処理割合を決定する。本明細書における「機械学習」とは、既知の値の集合であるトレーニングデータを学習することで未知の値を予測する処理である。
The
まず、決定部13は、クライアント環境情報を入力パラメータとし、前回のデータ補間で得られたクライアント成績情報を正解データとする機械学習を実行してクライアント端末20の処理能力を推定する。そして、決定部13はその推定結果に基づいて、処理能力に従って予め設定された複数のグループのうち、そのクライアント端末20がどのグループに属するかを判定する。例えば、処理能力を処理時間で表すとして、処理時間が20ms(ミリ秒)未満であるグループGaと、処理時間が20ms以上50ms未満であるグループGbと、処理時間が50ms以上であるグループGcとが設定されたとする。この場合において、決定部13は、機械学習によりクライアント端末20の処理能力(処理時間)を40msと推定した場合には、このクライアント端末20がグループGbに属すると判定する。続いて、決定部13は、そのグループ毎に用意された図3のフローチャートに従って次回の処理割合を決定する。
First, the
その後、決定部13はその処理割合に従って実行された次のデータ補間で得られたクライアント成績情報を次の正解データとする機械学習を実行することで処理能力を再び推定し、クライアント端末20が所属するグループを判定する。そして、決定部13はそのグループに対応する図3のフローチャートに従ってさらに次の処理割合を決定する。このような処理を繰り返すことで、処理割合が次第に最適化されていく。ただし、初回の機械学習ではクライアント成績情報が存在しないので、決定部13は正解データを用いることなく、クライアント環境情報を入力パラメータとする機械学習を実行する。クライアント環境情報は最初に取得すれば足りるので、2回目以降の機械学習では決定部13は取得済のクライアント環境情報を再利用してもよい。
Thereafter, the
図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
n個のサンプル(クライアント成績情報)が得られると、決定部13はグループにおける処理割合の最適解を遺伝的アルゴリズムを用いて探索する。具体的には、決定部13はクライアント成績情報に基づいてこれらのサンプルを順位付けすることでサンプル群を評価し(ステップS13)、最適解が変化する間は以下の処理を実行する(ステップS14;YES)。すなわち、決定部13は成績が上位h%の処理割合のサンプルを上位集団として残し、残りのサンプルを破棄する(ステップS15)。ここで、「成績が上位」であるとは、処理時間および総処理時間のうちの少なくとも一方に基づく評価値が上位であることを意味する。例えば、決定部13は、処理時間または総処理時間が短い順に複数のサンプルを上位集団として選択してもよいし、処理時間および総処理時間に基づいて任意の手法で算出される評価値が高い順に複数のサンプルを上位集団として設定してもよい。
When n samples (client performance information) are obtained, the
続いて、決定部13は、遺伝的アルゴリズムの親選択方法のうちのランキング選択を用いて親(二つの処理割合)を選択し(ステップS16)、その親から、より適切な処理割合に近い可能性を持つ新たな処理割合を生成する(ステップS17)。この新たな処理割合に基づいてクライアント端末20およびサーバ10がデータ補間を実行すると、決定部13はそのデータ補間により得られたクライアント成績情報をサンプルとして保存する(ステップS18)。決定部13はサンプル数が閾値nに達するまでステップS16〜S18の処理を繰り返す(ステップS19参照)。
Subsequently, the
ステップS16〜S18の処理をさらに詳細に説明する。決定部13はまず上位集団の各サンプルに、成績に基づく順位rに応じて出現確率pfを割り振る。順位rが1に近いサンプルほど出現確率pfが大きく設定され、処理割合の生成に用いる要素として高い確率で選択される。決定部13は出現確率pfを式(1)によって求める。
次に、決定部13は得られた出現確率pfに従ってランダムに2つの処理割合を選択する。もし二つの処理割合が同じだった場合には決定部13は、異なる処理割合が得られるようにその選択処理を再度行う。加えて、処理割合の組合せが過去に選択したことがあるものと同じだった場合にも、決定部13は選択処理を再度行う。同じ値同士でない新規の組み合わせを選択すると、決定部13はその組合せの中央値を求めることで新たな処理割合を生成する。この一連の処理では、サンプルの組合せにより、限られた入力値の範囲のみで最適となる局所最適解を最適としてしまう問題が発生し得るので、決定部13は突然変異確率pmを用いて処理割合をランダムに変動させる。この処理により、最適解を、局所最適解ではなく、全体としての最適解である大域最適解に近づけることが可能になる。
Next, select the two treatment rates randomly in accordance with the
サンプル数が閾値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
最適解を獲得した以降は、決定部13はそのグループに属するクライアント端末20に対する処理割合としてその最適解を設定する(ステップS21)。
After acquiring the optimal solution, the
なお、このような遺伝的アルゴリズムで用いる閾値n、割合h(%)、突然変異確率pm、および繰返し回数に関する閾値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
割当部14は、処理すべき未補間データをデータベース30から読み出し、決定部13により決定された処理割合に基づいてその未補間データをクライアント端末20とサーバ10とに割り当てる機能要素である。割当部14は、クライアント端末20に割り当てた未補間データをそのクライアント端末20に送信し、サーバ10に割り当てた未補間データを補間部15に出力する。
The
割当部14は未補間データの割当比率が処理割合と一致するように未補間データをクライアント端末20とサーバ10とに割り当てる。例えば、クライアント端末20およびサーバ10の処理割合がそれぞれ0.3および0.7と決定されたのであれば、割当部14は未補間データの30%分をクライアント端末20に割り当て、残りの70%分をサーバ10に割り当てる。なお、当然ながら、未補間データを構成する値の個数によっては未補間データの割当比率が処理割合と完全に一致しない場合があり得る。例えば、クライアント端末20とサーバ10との間の処理割合が3:7と決まったとしても、未補間データの割当比率が2.8:7.2となることがあり得る。
The
割当部14は、クライアント端末20とサーバ10とに単純に未補間データを配分してもよい。あるいは、割当部14は、処理割合に従いつつ、空間R内の特定の領域に設置されたセンサSで得られた未補間データをクライアント端末20に割り当ててもよい。例えば、割当部14はクライアント端末20から要求された領域(例えば、HMDで計測された視線方向または視認領域に基づく領域)に対応する1以上のセンサSを特定し、そのセンサSで得られた未補間データをクライアント端末20に割り当ててもよい。この場合には、クライアント端末20がその要求された領域でのデータ補間を先に実行して、当該領域の環境値を先に可視化することが可能になる(サーバ10から得られる補間済データはその後に可視化される)。
The allocating
補間部15は、サーバ10に割り当てられた未補間データに対するデータ補間を実行することで補間済データを生成する機能要素である。データ補間のアルゴリズムは限定されないが、例えば、空間補間アルゴリズムの一つである逆距離加重法を用いてもよい。この処理により、隣接するセンサS間における任意の領域での環境(例えば温度、湿度、電波強度)の推定値が得られる。補間部15は得られた補間済データをクライアント端末20に送信する。補間済データは、未補間データで示される環境値と、隣接するセンサ間における仮想の測定点における推定環境値との双方を含むデータである。
The
次に、クライアント端末20の機能構成を説明する。図1に示すように、クライアント端末20は機能的構成要素としてページ取得部21、クライアント情報提供部(取得部)22、補間部23、および表示制御部(出力部)24を備える。
Next, the functional configuration of the
ページ取得部21は、空間内の環境の様子を視覚的に表示するためのウェブページをサーバ10から取得する機能要素である。ページ取得部21はユーザ操作に基づいてまたは自動的にページ要求(空間内の環境の様子を視覚的に表示するためのウェブページの要求)をサーバ10に送信し、その要求に応じてサーバ10(ページ提供部11)から送られてきたページデータを受信する。このページデータがCPU101により実行されることで、ウェブページがウェブブラウザ上に表示されるとともに、未補間データの要求がクライアント端末20からサーバ10に送信される。
The
クライアント情報提供部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
補間部23は、クライアント端末20に割り当てられた未補間データ(サーバ10から受信した未補間データ)に対するデータ補間を実行することで補間済データを生成する機能要素であり、ページデータに埋め込まれたinterpolate_benchmark関数がCPU101により実行されることで実現される。サーバ10の補間部15と同様に、データ補間のアルゴリズムは限定されず、逆距離加重法などの任意の手法を用いることができる。この処理により、隣接するセンサS間における任意の領域での環境(例えば温度、湿度、電波強度)の推定値が得られる。補間部23は得られた補間済データを表示制御部24に出力する。
The
表示制御部24はクライアント端末20におけるデータ補間により得られた補間済データと、サーバ10におけるデータ補間により得られた補間済データとの結合を出力する機能要素である。ここで、「結合」という用語は、一組のデータとして出力される、クライアント端末20およびサーバ10で得られた補間済データの集合を意味する。表示制御部24は、補間部23から補間済データが入力され且つサーバ10から補間済データを受信すると、コンピュータグラフィックによりこれらの補間済データをウェブページ上に視覚的に表示する。この処理により補間済データが可視化される。
The
表示制御部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
次に、図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
クライアント端末20では、ページ取得部21がそのページデータを受信する。このページデータがCPU101により実行されることでウェブページが画面上に表示される。また、ページデータ内のスクリプトが実行されることで、クライアント情報提供部22がOSおよびウェブブラウザの情報と通信速度とをクライアント環境情報として取得し(ステップS113、取得ステップ)、そのクライアント環境情報をサーバ10に送信する(ステップS114)。また、ページ取得部21が未補間データをサーバ10に要求する(データ要求。ステップS115)。
In the
サーバ10では、クライアント情報取得部12がクライアント環境情報を受信する(取得ステップ)。続いて、決定部13が機械学習などのアルゴリズムを用いて、クライアント端末20とサーバ10との間のデータ補間の処理割合を決定する(ステップS116、決定ステップ)。そして、割当部14が処理対象の未補間データをデータベース30から抽出し、処理割合に基づいてその未補間データをクライアント端末20およびサーバ10に割り当てる(ステップS117、割当ステップ)。割当部14はクライアント端末20に割り当てた未補間データ(クライアント端末用の未補間データ)をクライアント端末20に送信する(ステップS118)。
In the
クライアント端末20では、補間部23がその未補間データを受信し、このデータに対するデータ補間を実行する(ステップS119)。この際に、クライアント情報提供部22がそのデータ補間の実行により得られるクライアント成績情報を取得する。一方で、サーバ10では補間部15が割当部14から入力された未補間データ(サーバ用の未補間データ)に対するデータ補間を実行し(ステップS120)、この処理により生成された補間済データをクライアント端末20に送信する(ステップS121)。クライアント端末20では補間部23がクライアント成績情報をサーバ10に送信し、クライアント情報取得部12がその情報を受信する(ステップS122、取得ステップ)。また、表示制御部24が補間部23で生成された補間済データとサーバ10から受信した補間済データとの結合を可視化する(ステップS123、出力ステップ)。
In the
本実施形態では、次のデータ補間(次の未補間データを補間する処理)を実行する際には、決定部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
クライアント端末20では、補間部23がその未補間データを受信し、このデータに対するデータ補間を実行するとともに(ステップS128)、クライアント情報提供部22がそのデータ補間の実行により得られるクライアント成績情報を取得する。一方で、サーバ10では補間部15が残りの未補間データ(サーバ用の未補間データ)に対するデータ補間を実行し(ステップS129)、この処理により生成された補間済データをクライアント端末20に送信する(ステップS130)。クライアント端末20では、補間部23が次のクライアント成績情報をサーバ10に送信し、クライアント情報取得部12がその情報を受信する(ステップS131、取得ステップ)。また、表示制御部24が次の補間済データの結合を可視化する(ステップS132、出力ステップ)。一方、サーバ10では、決定部13がクライアント環境情報および新たに得られたクライアント成績情報を入力とする機械学習などのアルゴリズムを用いて、クライアント端末20とサーバ10との間のデータ補間の処理割合を決定(再設定)する(ステップS133、決定ステップ)。
In the
分散処理システム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
なお、各ステップの実行順序は図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
サーバプログラム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
クライアントプログラム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
サーバプログラム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
上記実施形態では分散処理システム1はクライアント端末20からデータ要求を受け付ける度に処理割合を調整したが、処理割合を動的に調整するタイミングはこれに限定されない。例えば、分散処理システムの決定部は一定の時間間隔で(すなわち、定期的に)処理割合を決めてもよいし、ユーザの明示の指示に応答して処理割合を決めてもよい。
In the above embodiment, the distributed processing system 1 adjusts the processing ratio every time a data request is received from the
上記実施形態では表示制御部24が補間済データの結合をウェブブラウザ上に3次元画像により可視化したが、補間済データの出力方法は限定されない。例えば、分散処理システムは補間済みデータの結合を2次元画像の態様で表示してもよいし、ウェブブラウザ以外のアプリケーション上に2次元画像または3次元画像の態様で表示してもよい。分散処理システムは補間済みデータの結合の3次元画像をプリンタに出力してもよいし、メモリやデータベースなどの記憶装置に格納してもよい。あるいは、分散処理システムは補間済みデータの結合を通信ネットワーク経由で他のコンピュータシステムに出力してもよい。
In the above embodiment, the
上記実施形態では分散処理システム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.
請求項1に記載の分散処理システム。 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 .
請求項2に記載の分散処理システム。 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〜3のいずれか一項に記載の分散処理システム。 The data processing is data interpolation;
The distributed processing system as described in any one of Claims 1-3 .
前記出力部が、前記処理済データの結合を3次元画像により表示する、
請求項4に記載の分散処理システム。 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.
前記分散処理方法が、
前記クライアント端末のオペレーティングシステムおよびウェブブラウザと前記クライアント端末および前記サーバの間の通信速度とを示すクライアント環境情報と、前記クライアント端末での前回のデータ処理の動作結果を示すクライアント成績情報とを含むクライアント情報を該クライアント端末から取得する取得ステップと、
前記クライアント環境情報を入力パラメータとし且つ前記クライアント成績情報を正解データとする機械学習を実行することで前記クライアント端末の処理能力を推定し、推定された処理能力に基づいて前記クライアント端末と前記サーバとの間の処理割合を決定する決定ステップであって、前記処理割合が、次の未処理データを用いた次のデータ処理を実行する割合である、該決定ステップと、
前記決定ステップにおいて決定された処理割合に基づいて、前記クライアント端末および前記サーバに前記次の未処理データを割り当てる割当ステップと、
前記クライアント端末における前記次のデータ処理により得られた処理済データと、前記サーバにおける前記次のデータ処理により得られた処理済データとの結合を、前記クライアント端末から出力する出力ステップと
を含む、
分散処理プログラム。 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.
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)
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)
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 |
-
2014
- 2014-11-26 JP JP2014239141A patent/JP6486080B2/en active Active
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 |