JP2018049332A - データ検索システムおよびデータ検索方法 - Google Patents

データ検索システムおよびデータ検索方法 Download PDF

Info

Publication number
JP2018049332A
JP2018049332A JP2016182800A JP2016182800A JP2018049332A JP 2018049332 A JP2018049332 A JP 2018049332A JP 2016182800 A JP2016182800 A JP 2016182800A JP 2016182800 A JP2016182800 A JP 2016182800A JP 2018049332 A JP2018049332 A JP 2018049332A
Authority
JP
Japan
Prior art keywords
query
devices
processing state
processing
unit
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.)
Granted
Application number
JP2016182800A
Other languages
English (en)
Other versions
JP6334633B2 (ja
Inventor
誠 嶋村
Makoto Shimamura
誠 嶋村
義永 佐藤
Yoshiei Sato
義永 佐藤
基孝 金松
Mototaka Kanematsu
基孝 金松
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2016182800A priority Critical patent/JP6334633B2/ja
Priority to US15/694,419 priority patent/US20180081970A1/en
Publication of JP2018049332A publication Critical patent/JP2018049332A/ja
Application granted granted Critical
Publication of JP6334633B2 publication Critical patent/JP6334633B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】処理負荷を軽減させる。【解決手段】実施形態のデータ検索システムは、第1の装置と、第2の装置とを持つ。第1の装置は、配信部と、処理状態受信部と、完了判定部とを持つ。配信部は、データを保持可能な1以上の機器に対して、クエリを配信する。処理状態受信部は、前記第2の装置から、前記機器の前記クエリに対する処理状態を示す情報を受信する。完了判定部は、受信された処理状態から前記クエリが完了したか否かを判定する。第2の装置は、送受信部と、処理状態管理部と、処理状態送信制御部とを持つ。送受信部は、前記第1の装置により配信されたクエリを受信して、前記機器に送信する。処理状態管理部は、受信された前記機器ごとの前記クエリの処理結果に基づいて、前記機器のそれぞれが前記クエリを完了したか否かを示す処理状態を管理する。処理状態送信制御部は、管理された前記クエリの処理状態を、前記第1の装置に送信する。【選択図】図1

Description

本発明の実施形態は、データ検索システムおよびデータ検索方法に関する。
従来、データを保持可能な複数のIoT(Internet of Things)機器に接続されたサーバ装置から、各IoT機器に保持されたデータに対して検索を行うデータ検索システムが存在する。しかしながら、従来の検索システムでは、サーバ装置に多数のIoT機器が接続されるため、機器の故障やネットワーク障害等により、検索に失敗したIoT機器がある場合に、全体の検索処理がエラー制御となる場合があった。また、従来の検索システムでは、サーバ装置に処理が集中されるため、処理負荷が増大する場合があった。
特表2016−509294号公報
本発明が解決しようとする課題は、処理負荷を軽減させることができるデータ検索システムおよびデータ検索方法を提供することである。
実施形態のデータ検索システムは、第1の装置と、第2の装置とを持つ。第1の装置は、配信部と、処理状態受信部と、完了判定部とを持つ。配信部は、データを保持可能な1以上の機器に対して、クエリを配信する。処理状態受信部は、前記第2の装置から、前記1以上の機器により前記クエリに対する処理状態を示す情報を受信する。完了判定部は、前記処理状態受信部により受信された処理状態から前記クエリが完了したか否かを判定する。第2の装置は、送受信部と、処理状態管理部と、処理状態送信制御部とを持つ。送受信部は、前記第1の装置により配信されたクエリを受信して、前記1以上の機器に送信する。処理状態管理部は、前記送受信部により受信された、前記1以上の機器ごとの前記クエリの処理結果に基づいて、前記1以上の機器のそれぞれが前記クエリを完了したか否かを示す処理状態を管理する。処理状態送信制御部は、前記処理状態管理部により管理された前記クエリの処理状態を、前記送受信部を用いて前記第1の装置に送信する。
実施形態のデータ検索システム1の機能構成例を示す図。 GWクエリ管理テーブル154のデータの内容を示す図。 機器クエリ管理テーブル242のデータ例を示す図。 サーバ装置100からのクエリ配信の様子を説明するための図。 配下の機器300から処理状態を取得した機器クエリ管理テーブル242の一例を示す図。 配下のゲートウェイ装置200から処理状態を取得した機器クエリ管理テーブル242の一例を示す図。 データベースサイズを含む機器クエリ管理テーブル242Aの一例を示す図。 テーブルサイズを含む機器クエリ管理テーブル242Bの一例を示す図。 実施形態のサーバ装置100における処理内容の一例を示すフローチャート。 実施形態のゲートウェイ装置200における処理内容の一例を示すフローチャート。 実施形態の機器300における処理内容の一例を示すフローチャート。
以下、実施形態のデータ検索システムおよびデータ検索方法を、図面を参照して説明する。
図1は、実施形態のデータ検索システム1の機能構成例を示す図である。図1に示すデータ検索システム1は、例えば、サーバ装置(第1の装置)100と、1以上のゲートウェイ装置(第2の装置)200−1〜200−nと、1以上の機器300−1〜300−k(またはm)とを備える。k,mは、同一の数でもよく異なる数でもよい変数である。サーバ装置100と、ゲートウェイ装置200と、機器300とは、インターネットやLAN(Local Area Network)、WAN(Wide Area Network)等を含むネットワークNWを介して通信する。なお、以下の説明において、ゲートウェイ装置200−1〜200−nは、それぞれ同様の構成とし、いずれのゲートウェイ装置であるかを区別しないときは、いずれのゲートウェイ装置であるかを示すハイフン以降の符号を省略し、「ゲートウェイ装置200」と称して説明する。また、ハイフンで示された他の構成についても同様とする。また、実施形態のデータ検索システム1は、サーバ装置100を複数備えてもよく、ゲートウェイ装置200が複数階層に構成されてもよい。
まず、サーバ装置100の機能構成例について説明する。サーバ装置100は、例えば、検索実行部110と、配信部120と、処理状態受信部130と、完了判定部140と、記憶部150とを備える。検索実行部110、処理状態受信部130、及び完了判定部140は、CPU(Central Processing Unit)等のプロセッサが記憶部150に記憶されたプログラム(例えば、検索アプリ152)を実行することにより実現される。プログラムは、例えば、ネットワークNWを介してアプリケーションサーバ(不図示)からダウンロードされてもよいし、SDカード等の可搬型記憶媒体に格納されたものがサーバ装置100にインストールされてもよい。また、上述した各機能のうち一部または全部は、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)等のハードウェアによって実現されてもよいし、ソフトウェアとハードウェアとの協働によって実現されてもよい。
検索実行部110は、1以上の機器300に保持されているデータを取得するためのクエリを発行する。クエリとは、例えば、機器300に保持されているデータに対する操作を表す命令である。クエリは、例えば、SQL(Standard Query Language)で記述されたコマンドである。クエリは、例えば、機器300から時間情報に対応させて2016年の9月14日から9月21日までの消費電力量、ガス使用量、水道使用量等を取得するためのコマンドでもよく、現時点での温度や湿度等を取得するためのコマンドでもよい。また、クエリは、時間情報に関係なく機器300が保持する全てのデータを取得するコマンドでもよい。
検索実行部110は、機器300に実行させるクエリと、クエリを識別するためのクエリIDとを配信部120に出力する。また、検索実行部110は、ゲートウェイ装置200ごとのクエリ状態を管理するためのGWクエリ管理テーブル154を作成する。
図2は、GWクエリ管理テーブル154のデータの内容を示す図である。GWクエリ管理テーブル154は、例えば、「クエリID」および「ゲートウェイID」に対し、「処理状態」および「充足度」が対応付けられた情報である。「クエリID」は、検索実行部110により実行指示されたクエリの識別情報である。「ゲートウェイID」は、ゲートウェイ装置200の識別情報である。「処理状態」は、ゲートウェイ装置200ごとのクエリの処理状態を示す情報である。例えば、処理状態受信部130がゲートウェイ装置200からGWクエリ完了メッセージを受信した場合に、処理状態は、「完了」を示す情報となる。また、GWクエリ完了メッセージを受信していない場合に、処理状態は、「未完了」を示す情報となる。
「充足度」は、処理状態を受信した後に、完了判定部140により判定されるクエリの処理結果に対する充足度合である。充足度は、例えば、正しくクエリを完了できた機器数を、クエリを処理すべき機器数で除算することで算出することができる。検索実行部110は、クエリを配信部120から配信させる場合に、上述したクエリIDと、ゲートウェイID、処理状態、および充足度を1つの組としてGWクエリ管理テーブル154に記憶させる。このとき、初期値として、処理状態には、「未完了」が記憶され、充足度には、「0」が記憶される。
配信部120は、検索実行部110から得られたクエリおよびクエリIDをゲートウェイ装置200に配信する。
処理状態受信部130は、配信部120によりクエリをゲートウェイ装置200に配信した後、ゲートウェイ装置200から1以上の機器300によるクエリの処理結果または処理状態を受信する。クエリの処理結果を受信した場合に、処理状態受信部130は、クエリの処理結果を、クエリ結果データベース156に記憶する。処理状態受信部130は、受信した各ゲートウェイ装置200からの処理状態に基づいて、記憶部150に記憶されたGWクエリ管理テーブル154の処理状態を更新する。
完了判定部140は、処理状態受信部130により受信された処理状態からクエリが完了したか否かを判定する。例えば、完了判定部140は、記憶部150に記憶されたGWクエリ管理テーブル154を参照し、各ゲートウェイの処理状態から充足度を算出する。また、完了判定部140は、算出された充足度が所定の閾値(例えば、80%)以上の場合に、実行したクエリが成功したと判定する。クエリが成功したとは、例えば、クエリの実行により取得した処理結果が正当な結果として判定することである。
記憶部150は、RAM(Random Access Memory)やROM(Read Only Memory)、HDD(Hard Disk Drive)、フラッシュメモリ等により実現される。記憶部150には、例えば、検索アプリ152、GWクエリ管理テーブル154、およびクエリ結果データベース156の各情報が記憶される。サーバ装置100は、例えば、PC(Personal Computer)でもよく、複数の情報処理装置により構成されるクラウドサーバでもよい。
次に、ゲートウェイ装置200の機能構成について説明する。ゲートウェイ装置200は、例えば、送受信部210と、処理状態管理部220と、処理状態送信制御部230と、記憶部240とを備える。また、上述した処理状態管理部220および処理状態送信制御部230のうち一部または全部は、LSI、ASIC、FPGA等のハードウェアによって実現されてもよいし、ソフトウェアとハードウェアとの協働によって実現されてもよい。
送受信部210は、サーバ装置100により配信されたクエリを受信する。また、送受信部210は、受信したクエリを、ゲートウェイ装置200の配下にある1以上の機器300に送信する。
処理状態管理部220は、送受信部210により受信された、1以上の機器300ごとのクエリの処理結果を、記憶部240に記憶される機器クエリ管理テーブル242により管理する。
図3は、機器クエリ管理テーブル242のデータ例を示す図である。機器クエリ管理テーブル242は、例えば、「クエリID」および「機器ID」に対し、「処理状態」が対応付けられた情報である。「機器ID」は、機器を識別するための情報である。「処理状態」は、機器IDごとのクエリの処理状態である。
例えば、処理状態管理部220は、クエリを各機器300に配信した直後は、クエリに対する処理が完了していないため、「未完了」を設定する。また、処理状態管理部220は、機器300から処理結果を受信した場合に、対象の機器300の処理状態に「完了」を設定する。また、処理状態管理部220は、クエリを機器300に配信した後、所定時間を経過しても処理結果が得られた場合に、処理状態にタイムアウトエラーまたは通信エラー等を示す情報を設定する。なお、所定時間は、例えば、クエリごとに設定されてよい。
処理状態送信制御部230は、処理状態管理部220により管理されたクエリの処理状態を、送受信部210を用いてサーバ装置100に送信する。
記憶部240は、RAMやROM、HDD、フラッシュメモリ等により実現される。記憶部240には、例えば、機器クエリ管理テーブル242の情報が記憶される。ゲートウェイ装置200は、例えばネットワーク間でプロトコル変換を行う機能を有してもよい。また、ゲートウェイ装置200は、ルータ装置やハブ装置等の中継装置でもよい。
次に、機器300の機能構成例について、説明する。機器300は、例えば、送受信部310と、クエリ実行部320と、記憶部330とを備える。クエリ実行部320は、LSI、ASIC、FPGA等のハードウェアによって実現されてもよいし、ソフトウェアとハードウェアとの協働によって実現されてもよい。
送受信部310は、ゲートウェイ装置200により配信されたクエリを受信する。また、送受信部310は、クエリ実行部320で実行されたクエリ結果を、クエリを配信したゲートウェイ装置200に出力する。
クエリ実行部320は、送受信部310により受信したクエリを実行する。例えば、クエリ実行部320は、記憶部330に記憶されたセンサデータ332のうち、クエリに対応するデータの抽出を行う。センサデータ332とは、例えば、機器300が設置されている場所で所定時間毎に取得している温度や湿度、消費電力、ガス使用量、水道使用量等のデータのうち、少なくとも1つのデータである。センサデータ332は、時間情報とともに記憶されてもよい。
記憶部330は、RAMやROM、HDD、フラッシュメモリ等により実現される。記憶部330には、例えば、センサデータ332の情報が記憶される。機器300は、例えば、IoT機器である。
以下、サーバ装置100における検索処理の各種動作について説明する。図4は、サーバ装置100からのクエリ配信の様子を説明するための図である。なお、図4の例では、説明を簡略化するため、サーバ装置100と、ゲートウェイ装置200と、機器300とがそれぞれ1台接続されている例を示している。
サーバ装置100の検索アプリ152は、クエリIDとクエリとをサーバ側メッセージブローカ410により、全ゲートウェイ装置200へ送信させる(図示の(1))。なお、サーバ側メッセージブローカ410は、例えば、配信部120に相当する。また、検索アプリ152は、自己のライブラリ(クライアントライブラリ)に、GWクエリ管理テーブル154を生成する(図示の(2))。
次に、ゲートウェイ装置200のゲートウェイ側メッセージブローカ420により、サーバ装置100からのクエリIDおよびクエリを受信すると、受信した情報をクエリ制御プロセス430に出力する(図示の(3))。ゲートウェイ側メッセージブローカ420は、例えば、送受信部210に相当する。また、クエリ制御プロセス430は、例えば、処理状態管理部220および処理状態送信制御部230に相当する。
クエリ制御プロセスは、送信を受けたクエリIDを機器クエリ管理テーブル242に記憶し、データエントリを行う(図示の(4))。次に、ゲートウェイ側メッセージブローカ420は、クエリIDおよびクエリを機器300に送信する(図示の(5))。
機器300の送受信部310は、ゲートウェイ装置200からのクエリIDおよびクエリを受信する(図示の(6))。クエリ実行部320は、クエリを実行し、センサデータ332からクエリに対応するデータを取得するともに、検索結果のResultSetを作成する(図示の(7))。ResultSetとは、クエリに対するDBMS(Data Base Management System)等の応答であり、例えばSQLクエリの実行結果を含むオブジェクトである。DBMSを検索した結果として、例えば、テーブルの一部を表すデータがResultSetとなる。
次に、クエリ実行部320は、作成したResultSetを送受信部310により、ゲートウェイ装置200を介してサーバ装置100に送信する(図示の(8))。サーバ装置100は、ResultSetを受信する(図示の(9))。受信されたResultSetに対応するデータは、クエリ結果データベース156に記憶される。次に、クエリ実行部320は、クエリが完了した場合に、クエリ完了メッセージをクエリ制御プロセス430へ送信する(図示(10))。
次に、ゲートウェイ側メッセージブローカ420は、クエリ完了メッセージをクエリ制御プロセス430に出力する。クエリ制御プロセス430は、配下の全機器300について、クエリ完了メッセージを受信またはタイムアウトエラーを検出したか否かを判定する(図示の(11))。また、クエリ制御プロセス430は、配下の全機器300に対してクエリ完了メッセージを受信またはタイムアウトエラーを検出した場合に、GWクエリ完了メッセージをサーバ装置100に送信する(図示の(12))。クエリ制御プロセス430から送信されるGWクエリ完了メッセージには、配下の機器300のクエリの成功または失敗の割合に関する情報を含む。
図5は、配下の機器300から処理状態を取得した機器クエリ管理テーブル242の一例を示す図である。例えば、クエリ制御プロセス430は、ゲートウェイ装置200の配下の機器300として機器ID「device−1」〜「device−3」を有する。この場合、クエリ制御プロセス430は、クエリID「query−1」に対し、機器ID「device−1」および「device−2」の処理状態が「完了」で、機器ID「device−3」の処理状態がタイムアウトエラーだったとする。この場合、3つの機器300のうち2つの機器300が成功していることになるため、クエリ制御プロセス430は、GWクエリ完了メッセージに関する情報に、成功率2/3≒0.667等の割合に関する情報を出力する。なお、上述した割合に関する情報は、「充足度」の一例である。
次に、検索アプリ152は、配下の全ゲートウェイについてのGWクエリ完了メッセージを受信し、受信したGWクエリ完了メッセージに基づいて、クエリの成功または不成功を判定する。
図6は、配下のゲートウェイ装置200から処理状態を取得した機器クエリ管理テーブル242の一例を示す図である。例えば、サーバ装置100は、配下に3台のゲートウェイ装置(GW1〜GW3)を有しているとする。また、あるゲートウェイID「GW−1」が、その配下の3台の機器300のうち、1台でクエリ処理に失敗していたとする。この場合、ゲートウェイID「GW−1」の充足度は0.667となる。また、他のゲートウェイID「GW−2」、「GW−3」は、その配下の全ての機器300からの正常な処理結果を取得している。そのため、ゲートウェイID「GW−2」、「GW−3」の充足度は、1となる。したがって、トータルのクエリ結果の充足度は、各ゲートウェイ装置200の全ての充足度の総和をゲートウェイ装置200の数で除算し、2.667/3≒0.89となる。
ここで、検索アプリ152は、予め設定された閾値(例えば、0.8)以上の場合に、そのクエリは成功したと判定する。この場合、上述の0.89は、0.8以上であるため、検索アプリ152は、クエリが成功したと判定する。
ここで、上述の処理では、クエリ結果の充足度をゲートウェイ装置200ごとに求めたが、実施形態においては、これに限定されるものではない。例えば、ゲートウェイ装置200は、配下の機器300の数に応じて充足度を求めてもよい。この場合、ゲートウェイ装置200は、サーバ装置100に、クエリ結果の充足度Snと、配下にある機器数Nnとを送信する(例えば、nは、n番目の意味である)。
サーバ装置100の検索アプリ152は、ゲートウェイ装置200ごとのクエリ結果の充足度Snと、配下にある機器数Nnとの積の和を、機器数Nnの和で除算し(Σ(Sn×Nn)/ΣNn)、除算した値が閾値以上である場合に、クエリが成功したと判定する。
また、ゲートウェイ装置200は、機器300が保持するセンサデータ332のデータサイズに基づいて、充足度を算出してもよい。データサイズは、例えば、データベースサイズでもよく、テーブルサイズでもよい。例えば、データベースサイズに基づいて充足度を算出する場合には、全体のデータベースサイズに対して何割成功したか否かにより充足度を判定する。この場合、ゲートウェイ装置200は、クエリ発行時点での配下の機器が保持するデータベースサイズDmを予め受信する。なお、データベースサイズは、クエリ発行時に、同時にデータベースサイズの取得クエリを発行することで取得することができる。取得されたデータベースサイズは、機器クエリ管理テーブル242の各エントリに追加される。
図7は、データベースサイズを含む機器クエリ管理テーブル242Aの一例を示す図である。機器クエリ管理テーブル242Aには、クエリID、機器ID、処理状態の他に、各機器IDに対応する機器300のセンサデータ332のデータベースサイズが格納される。
ゲートウェイ装置200は、クエリ完了時に、クエリが成功した機器300が保持するデータベースサイズの和En(=ΣDm’(m’は成功した機器300)と、クエリを処理すべき機器300が保持するデータベースサイズの和Dn(=ΣDm)とを、サーバ装置100に送信する。サーバ装置100は、得られた二つの値に基づいて、クエリ結果の充足度を「ΣEn/ΣDn」を算出することで取得する。なお、上述したクエリ結果の充足度は、ゲートウェイ装置200で算出し、算出した結果をサーバ装置100に送信してもよい。
また、クエリに関連するテーブルサイズに基づいてクエリ結果の充足度を算出する場合、ゲートウェイ装置200は、クエリに関するテーブルのテーブルサイズTmを予め取得しておく。取得したテーブルサイズは、機器クエリ管理テーブル242の各エントリに追加される。
図8は、テーブルサイズを含む機器クエリ管理テーブル242Bの一例を示す図である。機器クエリ管理テーブル242Bには、クエリID、機器ID、処理状態の他に、各機器IDに対応する機器300のテーブルサイズが格納される。
ゲートウェイ装置200は、クエリが成功した機器300に関するテーブルサイズの和Tn(=ΣTm’)と、クエリを処理すべき機器300に関するテーブルサイズの和Un(=ΣTm)をサーバ装置100へ送信する。
サーバ装置100は、得られた二つの値に基づいて、クエリ結果の充足度を「ΣTn/ΣUn」を算出することで取得する。上述したクエリ結果の充足度は、ゲートウェイ装置200で算出し、算出した結果をサーバ装置100に送信してもよい。なお、上述したデータベースサイズやテーブルサイズを考慮したクエリ結果の充足度の算出手法は、固定長のデータ構造等の場合には、データサイズが共通化できるため、上述したクエリ結果の充足度の算出を容易に行うことができる。また、上述したデータサイズにより得られるクエリ結果の充足度に基づいて、クエリ結果が成功したか否かをより適切に判定することができる。
また、実施形態では、ゲートウェイ装置200の配下にある複数の機器300から、所定のグループ条件により機器300を抽出し、抽出した機器で少なくとも1つのグループを形成し、形成されたグループ単位でクエリを実行させたり、充足度等を算出させてもよい。所定のグループ条件としては、例えば地域ごとでもよく、機器300の種類や数でもよい。また、実施形態では、機器ID単位でグループ化を行ってもよく、ゲートウェイID単位でグループ化を行ってもよい。
例えば、サーバ装置100の管理者等は、「川崎市にある機器300の全て」等のように予めグルーピングを設定しておく。サーバ側メッセージブローカ410は、送信するクエリにグループを識別する情報を含めて、ゲートウェイ装置200に送信する。これにより、ゲートウェイ側メッセージブローカ420は、設定されたグループに含まれる機器300のみにクエリを送信させることができる。
次に、実施形態のサーバ装置100の各種処理内容について、フローチャートを用いて具体的に説明する。図9は、実施形態のサーバ装置100における処理内容の一例を示すフローチャートである。図9に示す処理は、クエリが実行されるごとに繰り返し実行される。
図9の例において、検索実行部110は、実行させるクエリを発行し(ステップS100)し、発行するクエリに対応するクエリIDを生成する(ステップS102)。
次に、配信部120は、GWクエリ管理テーブルを初期化し、クエリIDとクエリとをゲートウェイ装置200に配信する(ステップS104)。次に、処理状態受信部130は、ゲートウェイ装置200からクエリに対する処理結果、または、GWクエリ完了メッセージを受信したか否かを判定する(ステップS106)。
ゲートウェイ装置200からクエリに対する処理結果(クエリ結果)、または、GWクエリ完了メッセージを受信した場合、処理状態受信部130は、処理結果を受信したか否かを判定する(ステップS108)。処理結果を受信した場合、受信した処理結果を記憶部150に記憶させる(ステップS110)。また、ステップS108において、処理結果を受信していない場合、GWクエリ完了メッセージを受信したため、処理状態受信部130は、GWクエリ完了メッセージをGWクエリ管理テーブルに記憶する(ステップS112)。GWクエリ完了メッセージとは、例えば、ゲートウェイ装置200に対応する充足度である。
ステップS110およびステップS112の処理後、処理状態受信部130は、全てのゲートウェイ装置200からGWクエリ完了メッセージを受信したか、または、タイムアウトエラーになったか否かを判定する。タイムアウトエラーとは、例えば、クエリをゲートウェイ装置200に配信してから、GWクエリ完了メッセージを受信するまでの時間を設定しておき、その時間を超えたものをタイムアウトエラーとして判定する。
全てのゲートウェイ装置200からGWクエリ完了メッセージを受信した場合、または、タイムアウトエラーになった場合、完了判定部140は、クエリ全体における充足度を算出し(ステップS116)、算出された値と閾値と基づいてクエリの成功または失敗を判定する(ステップS118)。なお、例えば、算出したクエリ結果の充足度が閾値以上である場合に、クエリが成功したと判定することができる。これにより、本フローチャートの処理は終了する。
なお、上述したステップS114の処理において、全てのゲートウェイ装置からGWクエリ完了メッセージを受信したり、タイムアウトエラーになっていない場合、処理状態受信部130は、所定時間待機し(ステップS120)、ステップS106の処理に戻る。
次に、実施形態のゲートウェイ装置200の各種処理内容について、フローチャートを用いて具体的に説明する。図10は、実施形態のゲートウェイ装置200における処理内容の一例を示すフローチャートである。図10に示す処理は、ゲートウェイ装置200がサーバ装置100から配信されたクエリを受信するごとに繰り返し実行される。
図10の例において、送受信部210は、サーバ装置100からクエリとクエリIDに関する情報を受信する(ステップS200)、次に、処理状態管理部220は、送受信部210により、配下の全機器300にクエリを送信させる(ステップS202)。次に、処理状態管理部220は、受信したクエリIDに基づいて、機器クエリ管理テーブル242を作成する(ステップS204)。
次に、処理状態管理部220は、機器300からクエリ処理結果、または、クエリ処理完了メッセージを受信したか否かを判定する(ステップS206)。クエリ処理結果、または、クエリ処理完了メッセージを受信した場合、処理状態管理部220は、受信した情報がクエリ処理完了メッセージであるか否かを判定する(ステップS208)。受信した情報がクエリ処理完了メッセージでない場合、受信した情報は、クエリ処理結果であるため、送受信部210は、サーバ装置100にクエリ処理結果を送信し(ステップS210)、ステップS206の処理に戻る。
受信した情報がクエリ処理完了メッセージである場合(ステップS208)、処理状態管理部220は、受信したクエリ処理完了メッセージを機器クエリ管理テーブル242に記憶させる(ステップS212)。
次に、処理状態管理部220は、全機器300のクエリ処理完了メッセージが揃ったか、または、タイムアウトエラーになったか否かを判定する(ステップS214)。全機器300のクエリ処理完了メッセージが揃ったか、または、タイムアウトエラーになった場合、処理状態送信制御部230は、配下の機器300におけるクエリ結果に対する充足度を算出し(ステップS216)、クエリ結果の充足度を含むGWクエリ完了メッセージを、送受信部210によりサーバ装置100に送信させる(ステップS218)。これにより、本フローチャートの処理は終了する。
なお、上述したステップS214の処理において、全機器からクエリ処理完了メッセージが揃ってなく、タイムアウトエラーになっていない場合、処理状態管理部220は、所定時間待機し(ステップS220)、ステップS206の処理に戻る。
次に、実施形態の機器300の各種処理内容について、フローチャートを用いて具体的に説明する。図11は、実施形態の機器300における処理内容の一例を示すフローチャートである。図11に示す処理は、機器300がゲートウェイ装置200から送信されたクエリを受信するごとに繰り返し実行される。
図11の例において、ゲートウェイ装置200からクエリを受信すると、クエリ実行部320は、受信したクエリを実行する(ステップS300)。次に、クエリ実行部320は、クエリの処理結果として得られたデータ量が、所定量以上であるか否かを判定する(ステップS302)。所定量とは、例えば、送信するメッセージで規格化されたデータ量であるが、これに限定されるものではない。データ量が所定量以上である場合、クエリ実行部320は、処理結果として得られたデータ量を複数のデータに分割する(ステップS304)。
次に、送受信部310は、クエリの処理結果を、ゲートウェイ装置に送信する(ステップS306)。上述したステップS304の処理において、データが分割されている場合、送受信部310は、分割されているデータごとにゲートウェイ装置200に送信する。
次に、クエリ実行部320は、クエリの処理結果を全て送信したか否かを判定する(ステップS308)。クエリの処理結果を全て送信していない場合、ステップS302の処理に戻る。また、クエリの処理結果を全て送信した場合、クエリ完了メッセージをゲートウェイ装置200に送信する(ステップS310)。これにより、本フローチャートの処理は終了する。
ここで、実施形態のデータ検索システム1において、例えば、ある機器300がC送信中にダウンしたり、接続が切断された場合、処理状態受信部130は、それまでに送信済みのクエリ結果の一部を有効にしてもよく、また無効にしてもよい。また、データ検索システム1は、ゲートウェイ装置200において、上述した図4に示すクエリ制御プロセス430の代わりに、ブリッジプロセスを設け、機器300からのクエリ結果のバッファリングを行ってもよい。この場合、ゲートウェイ装置200は、ブリッジプロセスによりクエリ結果を一時的に保持しておき、機器300からのクエリ処理完了メッセージを受け取った場合に、保持されたクエリ結果をまとめてサーバ装置100に送信する。これにより、サーバ装置100は、機器300ごとに全てのクエリ結果を取得できるため、クエリ結果の充足度の精度を向上させることができる。
上述した実施形態のデータ検索システム1を用いることで、例えば、以下のような判定を行うことができる。例えば、サーバ装置100の検索実行部110は、機器300に対して現時点の消費電力量を取得するクエリをゲートウェイ装置200に配信させる。また、サーバ装置100は、ゲートウェイ装置200からクエリを配信した地域の9割の機器300からクエリ結果が取得できたとする。9割は、予め設定した閾値(例えば、8割)以上であるため、サーバ装置100の完了判定部140は、このクエリは、成功したと判定する。
また、完了判定部140は、9割の機器300の合計消費電力量が1.2[MWh]であった場合、全機器300の合計消費電力量を1.2×10/9≒1.33[MWh]であると推定する。また、完了判定部140は、推定した消費電力量を、消費電力量に関する閾値と比較することで、電力を使い過ぎているか否かを判定する。例えば、推定した消費電力量が閾値以上である場合、完了判定部140は、電力を使いすぎていると判定し、節電協力金のレートを一時的に引き上げる等の処理を行ってもよい。このように、実施形態のデータ検索システム1によれば、例えば、現時点での消費電力量の概況を得ることができ、一部のクエリ結果が得られなくても、ある範囲での概況を把握することで、システム全体に対する適切な処理を行うことができる。
なお、上述の例において、ゲートウェイ装置200からクエリを配信した地域の7割の機器300からしかクエリ結果が取得できなかった場合、閾値(例えば、8割)以下であるため、サーバ装置100の完了判定部140は、このクエリは、失敗したと判定、その後の処理を行わない。これにより、データ検索システム1は、信頼性がないデータを用いた処理を抑制することができ、システム全体の処理負荷を軽減することができる。
以上説明した少なくとも一つの実施形態によれば、サーバ装置100と、ゲートウェイ装置200とを備えるデータ検索システム1であって、サーバ装置100は、データを保持可能な1以上の機器300に対して、クエリを配信する配信部120と、ゲートウェイ装置200から、1以上の機器300のクエリに対する処理状態を示す情報を受信する処理状態受信部130と、処理状態受信部130により受信された処理状態からクエリが完了したか否かを判定する完了判定部140と、を持ち、ゲートウェイ装置200は、サーバ装置100により配信されたクエリを受信して、1以上の機器300に送信する送受信部210と、送受信部210により受信された、1以上の機器300ごとのクエリの処理結果に基づいて、1以上の機器のそれぞれがクエリを完了したか否かを示す処理状態を管理する処理状態管理部220と、処理状態管理部220により管理されたクエリの処理状態を、送受信部210を用いてサーバ装置100に送信する処理状態送信制御部230とを持つことにより、機器300に分散したデータを効率よく検索することができ、サーバ装置100の処理負荷を軽減させることができる。
具体的には、少なくとも一つの実施形態によれば、サーバ装置100は、クエリ管理をゲートウェイ装置200で行うことができる。また、少なくとも一つの実施形態によれば、ゲートウェイ装置200ごとに算出される充足度合に基づいて、クエリが成功したか否かを迅速に把握することができる。これにより、サーバ装置100は、全機器300の処理状態を管理する必要がなくなる。そのため、サーバ装置100の処理負荷を軽減させることができる。
また、少なくとも一つの実施形態によれば、多数の機器300に対する並列検索処理を迅速に行うことができる。また、少なくとも一つの実施形態によれば、クエリ結果に対する「質」の管理を適切に行うことができる。また、少なくとも一つの実施形態によれば、どの機器がクエリ処理を完了したのかを管理することができるとともに、クエリ結果の信頼性を判定することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
1…データ検索システム、100…サーバ装置、110…検索実行部、120…配信部、130…処理状態受信部、140…完了判定部、150、240、330…記憶部、200…ゲートウェイ装置、210,310…送受信部、220…処理状態管理部、230…処理状態送信制御部、300…機器、320…クエリ実行部

Claims (8)

  1. 第1の装置と、第2の装置とを備えるデータ検索システムであって、
    前記第1の装置は、
    データを保持可能な1以上の機器に対して、クエリを配信する配信部と、
    前記第2の装置から、前記1以上の機器の前記クエリに対する処理状態を示す情報を受信する処理状態受信部と、
    前記処理状態受信部により受信された処理状態から前記クエリが完了したか否かを判定する完了判定部と、を備え、
    前記第2の装置は、
    前記第1の装置により配信されたクエリを受信して、前記1以上の機器に送信する送受信部と、
    前記送受信部により受信された、前記1以上の機器ごとの前記クエリの処理結果に基づいて、前記1以上の機器のそれぞれが前記クエリを完了したか否かを示す処理状態を管理する処理状態管理部と、
    前記処理状態管理部により管理された前記クエリの処理状態を、前記送受信部を用いて前記第1の装置に送信する処理状態送信制御部と、を備える、
    データ検索システム。
  2. 前記処理状態管理部は、前記クエリを送信した1以上の機器のうち、前記クエリに対する処理が完了したものの割合に基づいて、前記クエリの結果に対する充足度合を算出し、
    前記処理状態送信制御部は、前記充足度合を前記処理状態として、前記送受信部を用いて前記第1の装置に送信する、
    請求項1に記載のデータ検索システム。
  3. 前記完了判定部は、前記第2の装置ごとの前記クエリの結果に対する充足度合に基づいて、前記クエリが成功したか否かを判定する、
    請求項2に記載のデータ検索システム。
  4. 前記完了判定部は、前記第2の装置ごとの前記クエリの結果に対する充足度合の総和を前記第2の装置の数で除算した値が閾値以上である場合に、前記クエリが成功したと判定する、
    請求項2または3に記載のデータ検索システム。
  5. 前記処理状態送信制御部は、前記充足度合とともに、前記クエリを送信した1以上の機器の数に関する情報を前記処理状態として、前記送受信部を用いて前記第1の装置に送信し、
    前記完了判定部は、前記第2の装置ごとの充足度合と前記機器の数との積の和を、前記第2の装置ごとの前記機器の数の和で除算した値が閾値以上の場合に、前記クエリが成功したと判定する、
    請求項2から4のうち、いずれか1項に記載のデータ検索システム。
  6. 前記処理状態管理部は、前記1以上の機器ごとに保持されたデータのデータサイズと、前記クエリに対する処理を完了した機器に保持されたデータのデータサイズとに基づいて、前記クエリの結果に対する充足度合を算出する、
    請求項2から5のうち、いずれか1項に記載のデータ検索システム。
  7. 前記配信部は、前記データを保持可能な1以上の機器のうち、所定のグループ条件によりグループ化された機器に対して前記クエリを配信する、
    請求項1から6のうち、何れか1項に記載のデータ検索システム。
  8. 第1の装置が、
    データを保持可能な1以上の機器に対して、クエリを配信し、
    第2の装置から、前記1以上の機器の前記クエリに対する処理状態を示す情報を受信し、
    受信された処理状態から前記クエリが完了したか否かを判定し、
    前記第2の装置が、
    前記第1の装置により配信されたクエリを受信して、前記1以上の機器に送信し、
    前記1以上の機器から受信された、前記1以上の機器ごとの前記クエリの処理結果に基づいて、前記1以上の機器のそれぞれが前記クエリを完了したか否かを示す処理状態を管理し、
    管理された前記クエリの処理状態を、前記第1の装置に送信する、
    データ検索方法。
JP2016182800A 2016-09-20 2016-09-20 データ検索システムおよびデータ検索方法 Active JP6334633B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016182800A JP6334633B2 (ja) 2016-09-20 2016-09-20 データ検索システムおよびデータ検索方法
US15/694,419 US20180081970A1 (en) 2016-09-20 2017-09-01 Data retrieval system and data retrieval method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016182800A JP6334633B2 (ja) 2016-09-20 2016-09-20 データ検索システムおよびデータ検索方法

Publications (2)

Publication Number Publication Date
JP2018049332A true JP2018049332A (ja) 2018-03-29
JP6334633B2 JP6334633B2 (ja) 2018-05-30

Family

ID=61621063

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016182800A Active JP6334633B2 (ja) 2016-09-20 2016-09-20 データ検索システムおよびデータ検索方法

Country Status (2)

Country Link
US (1) US20180081970A1 (ja)
JP (1) JP6334633B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018041154A (ja) * 2016-09-05 2018-03-15 東芝メモリ株式会社 ストレージシステムおよび処理方法
US11048702B1 (en) * 2018-02-07 2021-06-29 Amazon Technologies, Inc. Query answering

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004350201A (ja) * 2003-05-26 2004-12-09 Yokogawa Electric Corp データ取得システム
JP2008516313A (ja) * 2004-10-05 2008-05-15 ビジュアル サイエンシーズ,エルエルシー クエリー結果の一連の近似を算出するためのシステム、方法及びコンピュータプログラム
WO2012111255A1 (ja) * 2011-02-14 2012-08-23 パナソニック株式会社 ページング方法、ページングシステム、通信デバイス及び通信相手ノード
JP2015035731A (ja) * 2013-08-09 2015-02-19 株式会社データ変換研究所 通信システム
JP2015130123A (ja) * 2014-01-08 2015-07-16 株式会社リコー レポート生成システム、レポート生成装置、レポート生成方法及びプログラム
JP2015135568A (ja) * 2014-01-16 2015-07-27 株式会社日立製作所 ゲートウェイ装置、ファイルサーバシステム及びファイル分散方法
JP2016071783A (ja) * 2014-10-01 2016-05-09 富士通株式会社 データ取得装置、データ取得方法、及びプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996027157A1 (fr) * 1995-02-28 1996-09-06 Ntt Data Communications Systems Corporation Systeme associatif decentralise et traitements de journaux et de reprise dans celui-ci
US20080243865A1 (en) * 2007-03-28 2008-10-02 Oracle International Corporation Maintaining global state of distributed transaction managed by an external transaction manager for clustered database systems
US8949409B2 (en) * 2009-06-18 2015-02-03 Technion Research & Development Foundation Limited Method and system of managing and/or monitoring distributed computing based on geometric constraints
US10028107B1 (en) * 2013-07-09 2018-07-17 Sprint Spectrum L.P. Dynamic MBMS network reconfiguration
US9633073B1 (en) * 2014-03-24 2017-04-25 Amazon Technologies, Inc. Distributed data store for hierarchical data
EP3189451A4 (en) * 2014-09-26 2017-08-23 Huawei Technologies Co. Ltd. Method and query processing server for optimizing query execution
US10430402B2 (en) * 2015-01-16 2019-10-01 Red Hat, Inc. Distributed transaction with dynamic form

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004350201A (ja) * 2003-05-26 2004-12-09 Yokogawa Electric Corp データ取得システム
JP2008516313A (ja) * 2004-10-05 2008-05-15 ビジュアル サイエンシーズ,エルエルシー クエリー結果の一連の近似を算出するためのシステム、方法及びコンピュータプログラム
WO2012111255A1 (ja) * 2011-02-14 2012-08-23 パナソニック株式会社 ページング方法、ページングシステム、通信デバイス及び通信相手ノード
JP2015035731A (ja) * 2013-08-09 2015-02-19 株式会社データ変換研究所 通信システム
JP2015130123A (ja) * 2014-01-08 2015-07-16 株式会社リコー レポート生成システム、レポート生成装置、レポート生成方法及びプログラム
JP2015135568A (ja) * 2014-01-16 2015-07-27 株式会社日立製作所 ゲートウェイ装置、ファイルサーバシステム及びファイル分散方法
JP2016071783A (ja) * 2014-10-01 2016-05-09 富士通株式会社 データ取得装置、データ取得方法、及びプログラム

Also Published As

Publication number Publication date
JP6334633B2 (ja) 2018-05-30
US20180081970A1 (en) 2018-03-22

Similar Documents

Publication Publication Date Title
CN108205442A (zh) 边缘计算平台
CN109729131B (zh) 一种应用请求的处理方法、装置和路由器
CN111008075B (zh) 一种负载均衡系统、方法、装置、设备及介质
CN110400219B (zh) 业务处理方法及系统、交易监控方法及系统
US10735262B1 (en) System and method for self-orchestrated canary release deployment within an API gateway architecture
WO2017054504A1 (zh) 一种身份验证方法、装置及存储介质
US9053136B2 (en) Systems and methods for identifying contacts as users of a multi-tenant database and application system
CN104268664A (zh) 一种推荐拼车路线的方法及装置
US10437695B2 (en) Fault information providing server and fault information providing method for users of in-vehicle terminals
US20180165184A1 (en) Production-like testing and complex business to business auditing system
CN114024972B (zh) 一种长连接通信方法、系统、装置、设备及存储介质
WO2019119322A1 (zh) 检测系统、方法及相关装置
CN106453460B (zh) 一种文件分发方法、装置和系统
CA3017523C (en) Technologies for auto discover and connect to a rest interface
CN112367345A (zh) 数据处理方法、服务端设备及计算机可读存储介质
CN110046155B (zh) 特征数据库的更新、数据特征的确定方法、装置及设备
US20150271252A1 (en) Rule distribution server, event processing system and method, and program
CN111770022B (zh) 基于链路监控的扩容方法、系统、设备及计算机存储介质
JP6334633B2 (ja) データ検索システムおよびデータ検索方法
US11748801B2 (en) Processing documents
US10044838B2 (en) Method of automatically setting protocol in programmable logic controller system
JP2010061569A (ja) 障害対策管理サーバ及び障害対策管理プログラム
US9577888B2 (en) Method and apparatus for verifying and managing a client system network and network devices
EP3399483A1 (en) Ticket routing
CN108023740B (zh) 监控中异常信息的风险提示方法和装置

Legal Events

Date Code Title Description
A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20171227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180226

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180426

R151 Written notification of patent or utility model registration

Ref document number: 6334633

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151