以下、本発明の実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施の形態の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
図面等において示す各構成の位置、大きさ、形状、及び範囲等は、発明の理解を容易にするため、実際の位置、大きさ、形状、及び範囲等を表していない場合がある。したがって、本発明では、図面等に開示された位置、大きさ、形状、及び範囲等に限定されない。
図1は、実施例1のセンシングシステムの構成例を示す図である。
図1に示すセンシングシステムは、エッジ処理型センシングシステムであり、装置10、複数のセンサノード20−1、20−2、20−3、エッジサーバ30、及び中央処理サーバ40から構成される。
エッジサーバ30は、ネットワーク60を介して中央処理サーバ40と接続する。また、中央処理サーバ40には、端末50が接続される。本実施例では、複数の装置10及び複数のセンサノード20を含む工場等の拠点に対して一つ以上のエッジサーバ30が設置されているものとする。また、本実施例では、エッジサーバ30及び中央処理サーバ40との間には、使用可能な帯域が予め設定されているものとする。
ここで、帯域は、通信経路を送信するデータ(センサデータ)のデータ量を表す。以下の説明では、予め設定された帯域を設定帯域とも記載する。なお、本実施例の設定帯域は、単位時間当たりに送信されるデータのデータ量として設定されているものとする。
装置10は監視対象の装置である。本実施例の装置10には、三つのセンサノード20−1、20−2、20−3が設置されている。以下の説明では、センサノード20−1、20−2、20−3を区別しない場合、センサノード20と記載する。
なお、装置10に対して設置するセンサノード20の数は、二つ以下でもよいし、又は三つより多くてもよい。
なお、センサノード20は、装置10に接触するように設置されてもよいし、装置10に接触しないように設置されてもよい。例えば、センサ101が装置10の周囲の温度を計測する温度センサである場合、センサノード20は、装置10から離れた場所に設置される。このとき、温度センサのみが装置10に接触するようにしてもよい。
センサノード20は、センサ101、増幅器102、及びADC(Analog Digital Converter)103を有する。なお、センサノード20は、図示しない通信装置等も有する。
図1に示す例では、センサノード20−1は、センサ101−1、増幅器102−1、及びADC103−1を有し、センサノード20−2は、センサ101−2、増幅器102−2、及びADC103−2を有し、センサノード20−3は、センサ101−3、増幅器102−3、及びADC103−3を有する。以下の説明では、センサ101−1、101−2、101−3を区別しない場合、センサ101と記載し、増幅器102−1、102−2、102−3を区別しない場合、増幅器102と記載し、ADC103−1、103−2、103−3を区別しない場合、ADC103と記載する。
なお、センサノード20が有するセンサ101、増幅器102、及びADC103の数は、それぞれ一つであるが、二つ以上でもよい。例えば、ADC103が多チャンネル入力端子を有する場合、センサ101及び増幅器102の個数は複数でもよい。
センサ101は、装置10の状態等を示す物理量を計測し、計測値をアナログ信号として増幅器102に出力する。例えば、センサ101は、温度センサ及び加速度センサである。
なお、本実施例はセンサ101によって計測される物理量の種別に限定されない。計測する物理量の種別は測定対象に応じて変更できる。また、本実施例はアナログ信号の種別に限定されない。アナログ信号は、例えば、容量、電圧又は電流の変化を表す値である。
増幅器102は、アナログ信号を適切な振幅に増幅し、増幅後のアナログ信号をADC103に出力する。
ADC103は、アナログ信号をデジタル信号に変換し、図示しない通信装置を介して、変換されたデジタル信号をエッジサーバ30に送信する。以下の説明では、送信されるデジタル信号をセンサデータと記載する。
センサノード20及びエッジサーバ30の間の通信は、無線通信又は有線通信の何れでよい。本実施例では、I2C(Inter−Integrated Circuit)シリアルバスを用いた有線通信を想定している。ただし、WiFi、Bluetooth(登録商標)、ZigBee(登録商標)等の無線通信をでもよい。
なお、センサ101、増幅器102、及びADC103は、一つの装置内に実装されているが、各構成を別々の装置が実装してもよい。例えば、エッジサーバ30が、増幅器102及びADC103を有してもよい。また、増幅器102及びADC103を有する中継器をセンサノード20とエッジサーバ30との間に設けてもよい。
エッジサーバ30は、各センサノード20からセンサデータを取得し、センサデータに対して圧縮処理を実行し、ネットワーク60を介して、圧縮センサデータを中央処理サーバ40に送信する。
エッジサーバ30は、単位時間に送信するセンサデータのデータ量(データレート)が設定帯域を超えないようにセンサデータを圧縮する。
具体的には、エッジサーバ30は、センサデータを解析し、解析結果に基づいてセンサデータの重要性を示す指標を算出する。エッジサーバ30は、算出された指標に基づいてセンサデータの圧縮処理を制御するための制御指標を算出し、制御指標に基づいて圧縮方式を決定する。さらに、エッジサーバ30は、圧縮方式にしたがってセンサデータを圧縮した後、中央処理サーバ40に圧縮センサデータを送信する。
以下の説明では、エッジサーバ30が算出するセンサデータの重要性を示す指標を解析重要度と記載し、また、センサデータの圧縮を制御するための指標を重みと記載する。
中央処理サーバ40は、エッジサーバ30から圧縮センサデータを受信し、必要に応じて圧縮センサデータを用いた処理を実行し、また、圧縮センサデータ及び処理結果等をユーザに提示する。本実施例の中央処理サーバ40には、ユーザが操作する端末50が接続される。
端末50は、ユーザが操作する計算機である。端末50は、図示しないプロセッサ、主記憶装置、副記憶装置、ネットワークインタフェース、入出力装置を備える。端末50は、入出力装置を用いて、ユーザからの入力を受け付け、また、ユーザにセンサデータ等を提示する。
本実施例では、ユーザは、端末50を操作して後述する重要度情報を入力する。ここで、重要度情報は、センサ101の識別情報及び入力重要度の組を一つ以上含む情報である。また、入力重要度は、ユーザが入力したセンサデータの重要性を示す指標である。すなわち、入力重要度は、ユーザの判断によって決定されるセンサデータの重要性を示す指標である。
例えば、ユーザは、センサ101−2及びセンサ101−3が計測する値が重要でないと考えている場合、センサ101−2及びセンサ101−3の入力重要度を「0%」に設定し、また、センサ101−1の入力重要度を「100%」に設定する。これによって、ユーザが重要と考えているセンサデータに対して優先的に帯域を割り当てることができる。
端末50及び中央処理サーバ40は、直接接続されてもよいし、また、ネットワークを介して接続されてもよい。また、端末50及び中央処理サーバ40は、同一サイト内に配置されてもよいし、異なるサイトに配置されてもよい。
ここで、エッジサーバ30及び中央処理サーバ40の機能構成について説明する。
まず、エッジサーバ30について説明する。エッジサーバ30は、センサデータ取得部111、解析用データ格納部112、解析部113、データレート決定部114、及び圧縮処理部115を有し、また、解析用データベース116を保持する。
センサデータ取得部111は、センサノード20から送信されたセンサデータを受信し、センサデータを圧縮処理部115に出力し、また、センサ種別及び時刻情報が付与されたセンサデータを解析用データ格納部112に出力する。
センサ種別は、センサノード20によって付与されてもよいし、また、センサデータ取得部111によって付与されてもよい。例えば、センサノード20がセンサ種別を付与する場合、センサノード20がセンサ101に対応したセンサ種別をセンサデータに付与し、センサデータ取得部111がセンサ種別を付与する場合、センサデータ取得部111がセンサノード20を特定し、センサノード20が有するセンサ101に対応するセンサ種別をセンサデータに付与する。
時刻情報は、センサノード20によって付与されてもよいし、また、センサデータ取得部111によって付与されてもよい。例えば、センサノード20が時刻情報を付与する場合、センサ101が値を計測した時刻を時刻情報として付与し、また、センサデータ取得部111がセンサデータを受信した時刻を時刻情報と付与する。
解析用データ格納部112は、時刻情報が付与されたセンサデータを解析用データベース116に登録する。解析用データ格納部112は、一定時間経過した場合、又は、保存されたセンサデータのデータ量が閾値より大きい場合、時間情報に基づいて、所定の数又は所定のデータ量のセンサデータを解析用データベース116から削除する。
例えば、解析用データ格納部112は、周期的にセンサデータに付与された時刻情報を監視し、現時刻から1時間以前の時刻情報が付与されたセンサデータを解析用データベース116から削除する。
解析部113は、重要なセンサデータを特定するために、解析用データベース116に格納されるセンサデータを解析し、解析結果に基づいて解析重要度を算出する。例えば、解析部113は、センサデータのトレンドを特定するための解析処理を実行する。
本実施例では、トレンドを特定するためのセンサデータの解析方法の一つである外れ値検出手法を用いる。例えば、任意の時刻から30分間、計測した値が一定であったセンサ101が、突然、これまでとは異なる値を計測した場合、装置等の状態が異常である可能性が高いため、当該センサ101から受信したセンサデータは重要である。
なお、トレンドを特定するためのセンサデータの解析方法は、外れ値検出手法以外の方法でもよい。例えば、DFT(Discrete Fourier Transform)に基づく周波数解析、DTW(Dynamic Time Warping)法に基づく時系列波形の距離尺度計算、HMM(Hidden Markov Model)による時系列波形のクラスタリング等を用いた手法でもよい。
データレート決定部114は、解析部113から出力された算出重要度に基づいて、複数のセンサ101が送信するセンサデータの各々に割り当てられる帯域の比率を決定する。また、データレート決定部114は、設定帯域、圧縮前のデータレート、及び帯域の割当比率に基づいてデータレートを決定する。以下の説明では、データレート決定部114が決定したデータレートを送信データレートと記載する。データレート決定部114は、センサノード20が送信したセンサデータのデータ量及び送信データレートに基づいて圧縮率を算出する。
本実施例では、データレート決定部114は、算出重要度と、さらに、端末50から受け付けた入力重要度とを用いてセンサデータの各々の帯域の割当比率を決定する。また、後述するように、データレート決定部114は、複数のセンサデータの各々のデータレートの総和が設定帯域以下となるように送信データレートを決定する。
圧縮処理部115は、圧縮率に基づいて、複数のセンサデータの各々の圧縮方式を決定する。圧縮処理部115は、決定された圧縮方式に基づいて、複数のセンサデータの各々に対して圧縮処理を実行する。また、圧縮処理部115は、ネットワークインタフェース203(図2参照)等の通信装置を介して、圧縮処理が実行されたセンサデータを中央処理サーバ40に送信する。
なお、本発明は圧縮方法に限定されない。圧縮方法としては、例えば、サンプリングレートの変更及びデータ分解能の変更等がある。また、統計処理を実行して、センサデータの平均値及び分散値等の統計量に変換する圧縮方法、又は、センサデータに対してDFT処理を実行して、スペクトルに変換する圧縮方法でもよい。
エッジサーバ30は、送信データレート及び圧縮方式等をメタ情報として中央処理サーバ40に送信する。メタ情報には、メタ情報が生成された時刻を示す時刻情報が付与される。なお、メタ情報はセンサデータよりデータ量が小さいため、メタ情報の送信はセンサデータの送信に影響を与えない。
次に、中央処理サーバ40について説明する。中央処理サーバ40は、処理済センサデータ収集部121、センサデータ表示部122、及び重要度入力部123を有し、また、センサデータデータベース124を保持する。なお、中央処理サーバ40は、図示しないメタ情報も保持する。
処理済センサデータ収集部121は、エッジサーバ30から圧縮センサデータを受信し、センサデータデータベース124に登録する。なお、処理済センサデータ収集部121は、エッジサーバ30のIPアドレス等に基づいて、エッジサーバ30が設置された場所を特定し、場所の情報が付与された圧縮センサデータをセンサデータデータベース124に登録する。
センサデータ表示部122は、センサデータデータベース124に格納されるセンサデータを表示するための表示情報を生成し、端末50に表示情報を送信する。
重要度入力部123は、端末50が送信した重要度情報をデータレート決定部114に送信する。
図2は、実施例1のエッジサーバ30のハードウェア構成及びソフトウェア構成の詳細を説明するブロック図である。
エッジサーバ30は、ハードウェアとして、演算装置201、記憶装置202、及びネットワークインタフェース203を有する。各ハードゥエア構成は内部バス等を介して互いに接続される。なお、エッジサーバ30は、HDD(Hard Disk Drive)及びSSD(Solid State Drive)等の副記憶装置を有してもよい。
演算装置201は、演算処理を実行する装置であり、例えば、プロセッサ、GPU(Graphics Processing Unit)、及びFPGA(Field Programmable Gate Array)等である。
本実施例の演算装置201は、記憶装置202に格納されるプログラムを実行する。演算装置201がプログラムにしたがって処理を実行することによって、特定の機能を実現するモジュールとして動作する。以下の説明では、モジュールを主語に処理を説明する場合、CPUが当該モジュールを実現するプログラムを実行していることを示す。
記憶装置202は、演算装置201が実行するプログラム及び情報を格納する装置であり、例えば、メモリ等である。記憶装置202は、プログラムが一時的に使用するワークエリアを含む。記憶装置202に格納されるプログラム及び情報については後述する。
ネットワークインタフェース203は、ネットワークを介して他の装置と通信するインタフェースである。
ここで、記憶装置202に格納されるプログラム及び情報について説明する。本実施例の記憶装置202は、センサデータ取得部111、解析用データ格納部112、解析部113、データレート決定部114、及び圧縮処理部115を実現するプログラムを格納する。また、記憶装置202は、解析用データベース116、重み管理情報211、データレート管理情報212、圧縮方式管理情報213、及びセンサノード設定情報214を格納する。
重み管理情報211は、センサデータに対して設定する重みを管理する情報である。重み管理情報211の詳細は図3を用いて説明する。
データレート管理情報212は、センサデータのデータレートを管理する情報である。データレート管理情報212の詳細は図4を用いて説明する。
圧縮方式管理情報213は、センサデータの圧縮処理の方式及びパラメータを管理する情報である。圧縮方式管理情報213の詳細は図5を用いて説明する。
なお、エッジサーバ30が有する各モジュールについては、複数のモジュールを一つのモジュールにまとめてもよいし、一つのモジュールを機能毎に複数のモジュールに分けてもよい。
なお、中央処理サーバ40のハードウェア構成は、エッジサーバ30と同様のハードウェア構成であるものとする。
図3は、実施例1の重み管理情報211のデータ構造の一例を示す図である。
重み管理情報211は、センサID301、解析重要度302、入力重要度303、及び重み304から構成されるレコードを含む。一つのレコードが一つのセンサデータに対応する。
センサID301は、センサ101を一意に識別するための識別情報を格納するフィールドである。センサID301は、重み管理情報211のレコードを識別する識別情報としても用いられる。
本実施例では、一つのセンサ101は一種類のセンサデータを送信するものと仮定しているため、センサデータは、センサ101の識別情報を用いて識別される。
なお、一つのセンサ101が、複数種類のセンサデータを送信する場合、センサ101の識別情報及びデータ種別の組に対して、重みを設定すればよい。この場合、データ種別を格納するフィールドをレコードに追加すればよい。
解析重要度302は、解析部113によって算出された解析重要度を格納するフィールドである。入力重要度303は、ユーザが入力した入力重要度を格納するフィールドである。
重み304は、解析重要度302及び入力重要度303を用いて算出される重みを格納するフィールドである。例えば、解析重要度及び入力重要度の積を重みとして算出する方法が考えられる。
図3に示す例では、エッジサーバ30は、「センサ1」が送信するセンサデータが最も解析重要度が低く、「センサ2」が送信するセンサデータが最も解析重要度が高い。一方、「センサ4」が送信するセンサデータに対するユーザの興味が高く、他のセンサ101が送信するセンサデータに対するユーザの興味が低い。そこで、エッジサーバ30は、センサデータの解析結果及びユーザの興味、すなわち、解析重要度及び入力重要度に基づいて重みを算出する。また、エッジサーバ30は、重みに基づいて、複数のセンサデータの各々のデータレート、すなわち、複数のセンサデータの各々に割り当てる帯域を決定する。
レコードの重み304の値が小さい場合、レコードに対応するセンサデータに割り当てる帯域は少なくなるため、利用価値が低いセンサデータの送信に伴う帯域の逼迫を回避できる。重み304の値が「0」であるセンサデータには帯域は割り当てられないため、エッジサーバ30は、利用価値のないセンサデータが送信されないように制御できる。レコードの重み304の値が大きい場合、レコードに対応するセンサデータに割り当てる帯域は多くなるため、利用価値が高いセンサデータに多くの帯域を割り当てることができる。
例えば、メンテナンス時期のように一時的に特定のセンサデータの重要度が高くなる場合、ユーザは入力重要度を調整することによって、設定帯域内で特定のセンサデータが優先的に送信されるように割り当てる帯域を制御できる。
図4は、実施例1のデータレート管理情報212のデータ構造の一例を示す図である。
データレート管理情報212は、センサID401、センサ種別402、受信データレート403、重み404、重み付けデータレート405、送信データレート406、圧縮率407、及び圧縮方式408から構成されるレコードを含む。一つのレコードが一つのセンサデータに対応する。
センサID401及び重み404は、センサID301及び重み304と同一のフィールドである。
センサ種別402は、センサ101が計測する値の種別を格納するフィールドである。例えば、振動数を計測するセンサ101の場合、センサ種別402には「振動」が格納され、電流を計測するセンサ101の場合、センサ種別402には「電流」が格納される。
受信データレート403は、エッジサーバ30がセンサノード20から受信したセンサデータのデータレートを格納するフィールドである。すなわち、受信データレート403には、圧縮前のセンサデータのデータレートが格納される。
重み付けデータレート405は、圧縮前のデータレート及び重みを用いて算出されたデータレート(重み付けデータレート)を格納するフィールドである。
重み付けデータレートは、例えば、式(1)に示すように、帯域及び重みの積として算出される。なお、anは受信データレート403の値を表し、bnは重み404の値を表し、cnは重み付けデータレートを表す。また、nはセンサデータを識別する添字を表す。
送信データレート406は、データレート決定部114によって決定されたセンサデータのデータレートを格納するフィールドである。本実施例では、エッジサーバ30は、各レコードの重み付けデータレート405の比率を用いて、送信データレート406の合計値が設定帯域以下となるように送信データレートを算出する。例えば、エッジサーバ30は、式(2)に基づいて送信データレートを算出する。なお、dnは送信データレートを表し、Sは設定帯域を表す。
式(2)に含まれる式(3)の値は、複数のセンサデータの各々の送信データレートの比率を表す。なお、式(2)の値が小数を含む場合、有効桁数を設けてもよい。本実施例では、小数点以下を切り捨てて、整数を算出するものとする。
圧縮率407は、帯域の圧縮率を格納するフィールドである。圧縮率は、式(4)に基づいて算出される。ここで、enは圧縮率を表す。
圧縮方式408は、決定された圧縮方式に関する情報を格納するフィールドである。圧縮方式408には、圧縮方式の種別及び圧縮方式に使用するパラメータが格納される。なお、送信されないセンサデータに対応するレコードの圧縮方式408は空欄となる。
図5は、実施例1の圧縮方式管理情報213のデータ構造の一例を示す図である。
圧縮方式管理情報213は、行列形式の情報であり、行は圧縮率501に対応し、列はセンサ種別502に対応する。すなわち、圧縮方式は、圧縮率及びセンサ種別の組合せで特定される。
圧縮率501は、圧縮方式を選択するための圧縮率を示す。本実施例では、予め、圧縮率の幅が決定されているものとする。ただし、圧縮率の幅は任意に設定できる。
センサ種別502は、センサ101の種別を格納するフィールドである。センサ種別502に対して、圧縮方式を指定するデータ送信形式510が定義される。任意の圧縮率に対して選択可能な圧縮処理には、圧縮処理に使用するパラメータが格納される。
センサ種別502が「振動センサ」である場合、時間波形511、スペクトル512、及び実効値513の三つの圧縮方式が定義されている。
圧縮率501が「100%」、「80%以上かつ100%未満」、又は、「40%以上かつ80%未満」の場合、時間波形511が選択される。時間波形511は、時間波形であるセンサデータのパラメータを変更する圧縮方式を表す。
圧縮率が「100%」の場合、時間波形511の列の一番上の行の圧縮方式が適用される。当該圧縮方式は、時間波形で表されるセンサデータを圧縮しない圧縮方式を表す。圧縮率が「80%以上かつ100%未満」の場合、サンプリングレートを800kHzに変更した時間波形に圧縮される。同じ時間波形であってもサンプリングレートを小さくすることによって送信データレートを削減できる。
圧縮率501が「10%以上かつ40%未満」又は「1%以上10%未満」の場合、スペクトル512が選択される。スペクトル512は、時間波形であるセンサデータをスペクトルに変換する圧縮方式を表す。
圧縮率501が「0%より大きくかつ1%未満」の場合、実効値513が選択される。実効値513は、時間波形であるセンサデータを一定時間における平均値及び最大値等に変換する圧縮方式を表す。
圧縮率501が「0%」の場合、圧縮処理及びデータの送信は行われない。
なお、前述した圧縮方式は一例であって、センサデータに対して定義する圧縮方式は任意に設定できる。例えば、平均値及び差分値等の圧縮方式がある。
図6は、実施例1のエッジサーバ30がセンサデータを送信する場合に実行する処理の流れを示すシーケンス図である。図7は、実施例1の端末50に表示されるGUIの一例を示す図である。
図6では、センサデータ取得部111がセンサデータを取得し、解析用データ格納部112が取得したセンサデータを解析用データベース116に登録した後の処理を示す。このとき、エッジサーバ30には、重要度入力部123によって入力重要度が入力されているものとする。
なお、入力重要度は図7に示すようなGUI700に基づいて予め設定されているものとする。ここで、GUI700について説明する。
端末50は、表示要求を中央処理サーバ40に送信する。表示要求には、例えば、施設の名称又は場所等の情報が含まれる。
中央処理サーバ40は、表示要求を受信した場合、指定された施設に設置されたエッジサーバ30を特定する。中央処理サーバ40は、特定されたエッジサーバ30から受信したセンサデータ(圧縮センサデータ)をセンサデータデータベース124から読み出し、また、特定されたエッジサーバ30から取得したメタ情報を読み出す。中央処理サーバ40は、読み出した情報に基づいて、GUI700を表示するための表示情報を生成し、端末50に表示情報を送信する。
このとき、中央処理サーバ40は、読み出したセンサデータ及びメタ情報を適宜加工してもよい。例えば、中央処理サーバ40は、解析重要度の範囲に基づいて、解析重要度を「高」、「中」、「低」のいずれかに変換し、変換された解析重要度を表示情報に含める。
なお、表示要求に、表示するセンサデータの時間範囲を指定する値が含まれる場合、中央処理サーバ40は、センサデータデータベース124から指定された時間範囲に含まれるセンサデータを取得し、また、指定された時間範囲に使用されたメタ情報を読み出す。
端末50は、表示情報に基づいてGUI700を表示する。GUI700は、三つの表示領域710、720、730を含む。表示領域710は、監視場所の情報を表示する領域である。表示領域720は、監視場所から送信されるセンサデータに対する帯域(データレート)の割当状態を表示する領域である。表示領域730は、装置10に設置されたセンサノード20から送信されたセンサデータ等を表示する領域である。GUI700には装置10の数だけ表示領域730が存在する。
表示領域730は、センサ表示領域731、センサデータ表示領域732、データレート表示領域733、データ送信形式表示領域734、解析重要度表示領域735、及び重みチューニング736を含む。
センサ表示領域731は、装置10に設置されたセンサノード20が有するセンサ101の識別情報及び種別を表示する。
センサデータ表示領域732は、センサ101が計測したセンサデータを表示する。なお、センサデータ表示領域732には、圧縮センサデータが表示される。データレート表示領域733は、圧縮センサデータの送信に割り当てられた帯域(データレート)を表示する。データ送信形式表示領域734は、圧縮方式を表示する。解析重要度表示領域735は、センサデータの解析重要度を表示する。
重みチューニング736は、重みを調整するパラメータである入力重要度を入力するための操作部(ダイヤル)である。一番左端の状態は入力重要度が「50」を表す。本実施例では、時計回りにダイヤルを操作することによって、入力重要度を大きくすることができ、反時計回りにダイヤルを操作することによって入力重要度を小さくすることができる。なお、重みチューニング736は、ダイヤル以外の操作部でもよい。
ユーザが重みチューニング736を操作した場合、端末50は、センサ101の識別情報と操作結果に応じた入力重要度との組を中央処理サーバ40に送信する。
中央処理サーバ40は、重要度入力部123を介して、センサ101の識別情報及び入力重要度の組を受信し、当該組をエッジサーバ30に送信する。
エッジサーバ30は、データレート決定部114を介して、センサ101の識別情報及び入力重要度の組を受信する。データレート決定部114は、重み管理情報211を参照し、センサID301が受信した組に含まれるセンサ101の識別情報に一致するレコードを検索する。エッジサーバ30は、検索されたレコードの入力重要度303に、受信した組に含まれる入力重要度を設定する。
以上がGUI700の説明である。図6の説明に戻る。
まず、解析部113は、解析用データベース116に格納されるセンサデータを用いて、センサデータのトレンドを特定するための解析処理を実行する(ステップS601)。
次に、解析部113は、解析の結果に基づいて、各センサデータの解析重要度を算出する(ステップS602)。また、解析部113は、センサ101の識別情報及び解析重要度の組を含む解析結果をデータレート決定部114に出力する(ステップS603)。
データレート決定部114は、解析結果が入力された場合、重み管理情報211に解析重要度を登録する(ステップS604)。
具体的には、データレート決定部114は、解析結果に含まれるセンサ101の識別情報及び解析重要度の組の中から一つの組を選択する。データレート決定部114は、センサID301が選択された組のセンサ101の識別情報に一致するレコードを検索する。データレート決定部114は、検索されたレコードの解析重要度302に選択された組の解析重要度を設定する。データレート決定部114は、解析結果に含まれる全ての組に対して同様の処理を実行する。
次に、データレート決定部114は、解析重要度及び入力重要度に基づいて重みを算出する(ステップS605)。具体的には、以下のような処理が実行される。
データレート決定部114は、重み管理情報211からターゲットレコードを一つ選択し、ターゲットレコードの解析重要度302及び入力重要度303から値を読み出す。
データレート決定部114は、読み出された値を所定の計算式に入力することによって重みを算出する。例えば、データレート決定部114は、解析重要度及び入力重要度の積として重みを算出する。なお、本発明は、重みの算出方法に限定されない。
データレート決定部114は、ターゲットレコードの重み304に算出された重みを設定する。
データレート決定部114は、重み管理情報211の全てのレコードについて同様の処理を実行する。以上がステップS605の処理の説明である。
次に、データレート決定部114は、複数のセンサデータの各々の送信データレートを決定するために、設定帯域及び重みに基づいて送信データレート決定処理を実行する(ステップS606)。送信データレート決定処理の詳細は図9を用いて説明する。当該処理によって圧縮率が算出される。
次に、データレート決定部114は、完了通知を圧縮処理部115に出力する(ステップS607)。
圧縮処理部115は、完了通知が入力された場合、圧縮率に基づいて複数のセンサデータの各々の圧縮方式を決定する(ステップS608)。具体的には、以下のような処理が実行される。
圧縮処理部115は、データレート管理情報212を参照し、レコードの中からターゲットレコードを選択する。圧縮処理部115は、選択されたターゲットレコードのセンサ種別402及び圧縮率407からセンサ種別及び圧縮率を読み出す。圧縮処理部115は、圧縮方式管理情報213を参照し、圧縮率を包含する範囲に対応する行を検索する。
圧縮処理部115は、検索された行に含まれる列の中から、パラメータが設定された列を特定する。圧縮処理部115は、特定された列に対応する圧縮方式の種別及びパラメータをターゲットレコードの圧縮方式408に設定する。
圧縮処理部115は、データレート管理情報212の全てのレコードに対して同様の処理を実行する。以上がステップS608の処理の説明である。
次に、圧縮処理部115は、複数のセンサデータの各々の圧縮処理を実行する(ステップS609)。
次に、圧縮処理部115は、圧縮センサデータを中央処理サーバ40に送信する(ステップS610)。圧縮センサデータには時刻情報が付与されている。
このとき、圧縮処理部115は、センサデータとともに、時刻情報を付与したデータレート管理情報212をメタ情報として送信する。例えば、圧縮処理部115は、ステップS608又はステップS609の処理が完了した時刻を示す時刻情報をデータレート管理情報212に付与する。
図8は、実施例1のデータレート決定部114が実行する送信データレート決定処理の詳細を説明するフローチャートである。
データレート決定部114は、データレート管理情報212を初期化する(ステップS801)。具体的には、以下のような処理が実行される。
データレート決定部114は、データレート管理情報212を空にした後、重み管理情報211に登録されるレコードの数だけ、データレート管理情報212にレコードを追加する。
データレート決定部114は、重み管理情報211の各レコードのセンサID301及び重み404から値を読み出し、追加されたレコードのセンサID401及び重み404に値を設定する。また、データレート決定部114は、解析用データベース116を参照して、各センサのセンサ種別を取得し、各レコードのセンサ種別402に取得したセンサ種別を設定する。
データレート決定部114は、圧縮処理部115又はセンサデータ取得部111に問い合わせることによって、複数のセンサデータの圧縮前の帯域を取得し、追加されたレコードの受信データレート403に値を設定する。
なお、データレート決定部114は、中央処理サーバ40に、初期化前のデータレート管理情報212を送信してもよい。以上がステップS801に処理の説明である。
次に、データレート決定部114は、複数のセンサデータの各々の重み付けデータレートを算出する(ステップS802)。
具体的には、データレート決定部114は、各レコードについて式(1)に示す演算を実行する。また、データレート決定部114は、各レコードの重み付けデータレート405に算出された重み付けデータレートを設定する。
次に、データレート決定部114は、複数のセンサデータの各々の重み付けデータレートの合計値が設定帯域より大きいか否かを判定する(ステップS803)。すなわち、圧縮処理が必要であるか否かが判定される。
複数のセンサデータの各々の重み付けデータレートの合計値が設定帯域より大きいと判定された場合、データレート決定部114は、センサデータの各々の送信データレートを算出する(ステップS804)。
具体的には、データレート決定部114は、各レコードについて式(2)に示す演算を実行する。データレート決定部114は、各レコードの送信データレート406に算出された送信データレートを設定する。
次に、データレート決定部114は、各センサデータの圧縮率を算出する(ステップS805)。
具体的にはデータレート決定部114は、各レコードについて式(4)に示す演算を実行する。データレート決定部114は、各レコードの圧縮率407に算出された圧縮率を設定する。
次に、データレート決定部114は、センサデータの圧縮を指示する完了通知を圧縮処理部115に出力し(ステップS806)、その後、処理を終了する。この場合、圧縮処理部115は、圧縮比率に基づいて圧縮方式及びパラメータを決定し、決定された圧縮方式及びパラメータにしたがってセンサデータを圧縮する。さらに、圧縮処理部115は、圧縮されたセンサデータを中央処理サーバ40に送信する。
ステップS803において、複数のセンサデータの各々の重み付けデータレートの合計値が設定帯域以下であると判定された場合、データレート決定部114は、完了通知を圧縮処理部115に出力し(ステップS807)、その後、処理を終了する。この場合、圧縮処理部115は、センサデータをそのまま中央処理サーバ40に送信する。
このとき、データレート決定部114は、データレート管理情報212の各レコードの送信データレート406に受信データレート403と同一の値を設定し、また、各レコードの圧縮率407に「100」を設定する。また、データレート決定部114は、データレート管理情報212の各レコードの圧縮方式408は空欄のままにする。
ここで、図4を用いて具体的な処理について説明する。なお、設定帯域が100kbpsであるものとする。ステップS803において、重み付けデータレートの合計値は720kbpsであり、設定帯域より大きいため、データレート決定部114は、ステップS804に進む。ステップS804では、データレート決定部114は、式(2)に基づいて送信データレートを算出する。ステップS805及びステップS806では、データレート決定部114は、圧縮率を算出し、圧縮を指示する完了通知を圧縮処理部115に出力する。
なお、エッジサーバ30は、解析重要度及び入力重要度から算出された重みに基づいて送信データレートを決定していたが、これに限定されない。例えば、複数のセンサデータの各々の入力重要度が同一である場合、又は、入力重要度が設定されていない場合、エッジサーバ30は、解析重要度を重みとして用いてもよい。
実施例1によれば、エッジサーバ30は、センサデータの解析結果等に基づいて、送信するセンサデータのデータレート、すなわち、センサデータの送信に割り当てる帯域を制御できる。これによって、限られた帯域を有効に活用して、重要なセンサデータを中央処理サーバ40に送信できる。
また、施設等に設置されるエッジサーバ30は、センサデータのトレンドの変化等を考慮して、自動的に送信データレートを制御するため、柔軟かつ迅速な帯域制御を実現できる。
(変形例)
圧縮処理部115は、帯域以外の外的要因に基づいて、圧縮されたセンサデータの送信タイミングを調整するスケジューリングを行ってもよい。
図9A及び図9Bは、実施例1の変形例のセンサデータの送信タイミングの調整方法の一例を示す図である。図9Aは、平日におけるセンサデータの送信タイミングの一例を示す。図9Bは、休日におけるセンサデータの送信タイミングの一例を示す。
圧縮処理部115は、図示しない通信料金を管理する情報及びセンサノード20の稼働時間を管理する情報を保持する。
時間帯に応じて通信料金が変動する場合、圧縮処理部115は、通信料金が低い時間帯に圧縮センサデータを送信するようにスケジューリングを行う。拠点の活動時間帯では、拠点内のネットワークを有効に活用するために、圧縮センサデータの送信に伴う帯域の消費は望ましくない。そこで、圧縮処理部115は、拠点の活動状態に合わせて圧縮センサデータを送信するようにスケジューリングを行う。
圧縮処理部115は、通信料金及び拠点の活動状態を考慮して、圧縮センサデータを送信する。図9A及び図9Bでは、以下のようなスケジューリングが行われる。
通信料金が低額かつ拠点が休止状態の場合、圧縮処理部115は、バッファに格納された圧縮センサデータを送信する。通信料金が通常料金かつ拠点が活動状態の場合、圧縮処理部115は、圧縮センサデータをバッファに格納する。通信料金が通常料金かつ拠点が休止状態の場合、圧縮処理部115は、バッファに格納された圧縮センサデータを送信する。
このように、帯域以外の外的要因に基づいて圧縮センサデータの送信タイミングを調整することによって、通信料金の削減、及び、拠点内のネットワークが圧迫されることを避けることができる。
実施例2では、エッジサーバ30が、センサデータのデータレートを制御するとともに、センサノード20を制御する点が実施例1と異なる。以下、実施例1との差異を中心に実施例2について説明する。
センサノード20は、電池及び環境発電を利用した電力供給等、限られた電力で動作する形態が多い。したがって、通信処理に使用する電力等を制御して、装置全体の消費電力を小さくすることが望ましい。
圧縮率は送信データレートを決定するための指標である。圧縮率が大きいセンサデータについては、データ量を予め削減することができる。そこで、エッジサーバ30は、センサノード20が送信するデータ量を削減する制御を行って、センサデータの取得及び送信に使用する電力量を削減する。
図10は、実施例2のセンシングシステムの構成例を示す図である。
実施例2では、エッジサーバ30がセンサノード制御部1001を有する。実施例2の装置10、センサノード20、及び中央処理サーバ40の構成は、実施例1の構成と同一である。
実施例2の解析部113は、センサノード制御部1001に完了通知を出力する。センサノード制御部1001は、データレート管理情報212の圧縮率407を参照してセンサノード20の制御内容を決定し、決定された制御内容を含む制御命令をセンサノード20に送信する。
図11は、実施例2のエッジサーバ30のハードウェア構成及びソフトウェア構成の詳細を説明するブロック図である。
実施例2のエッジサーバ30のハードウェア構成は、実施例1のエッジサーバ30のハードウェア構成と同一である。実施例2のエッジサーバ30のソフトウェア構成は、実施例1のエッジサーバ30のソフトウェア構成と一部異なる。
具体的には、記憶装置202は、センサノード制御部1001を実現するプログラムを格納し、また、センサノード設定情報1101を格納する。
センサノード設定情報1101は、センサノード20の各種設定を管理する情報である。センサノード設定情報1101の詳細は図11を用いて説明する。
図12は、実施例2のセンサノード設定情報1101のデータ構造の一例を示す図である。
センサノード設定情報1101は、行列形式の情報であり、行は圧縮率1201に対応し、列はセンサ種別1202に対応する。すなわち、センサノード20の制御内容は、圧縮率及びセンサ種別の組合せで特定される。
圧縮率1201は、センサノード20の制御内容を選択するための圧縮率を示す。本実施例では、予め、圧縮率の幅が決定されているものとする。ただし、圧縮率の幅は任意に設定できる。
センサ種別1202は、センサ101の種別を格納するフィールドである。センサ種別1202に対して、センサノード20の設定を指定するセンサノード設定1210及び消費電力1220が定義される。
センサノード設定1210には、センサ101を制御するパラメータを格納するセンサ1211、増幅器102を制御するパラメータを格納する増幅器1212、及びADC103を制御するパラメータを格納するADC1213が含まれる。なお、センサノード20の制御内容は任意に設定できる。
消費電力1220は、センサノード設定1210に格納されたパラメータを設定した場合のセンサノード20の消費電力を格納する。
図13は、実施例2のエッジサーバ30がセンサデータを送信する場合に実行する処理の流れを示すシーケンス図である。
実施例2の圧縮処理部115が実行する処理は実施例1の圧縮処理部115が実行する処理と同一であるため、図13では省略している。
ステップS601からステップS606までの処理は、実施例1で説明した処理と同一である。データレート決定部114は、送信データレート決定処理を終了した後、完了通知をセンサノード制御部1001に出力する(ステップS1301)。
センサノード制御部1001は、完了通知が入力された場合、圧縮率に基づいて複数のセンサノード20の制御方式を決定する(ステップS1302)。具体的には、以下のような処理が実行される。
センサノード制御部1001は、データレート管理情報212を参照し、レコードの中からターゲットレコードを選択する。圧縮処理部115は、選択されたターゲットレコードのセンサ種別402及び圧縮率407からセンサ種別及び圧縮率を読み出す。
センサノード制御部1001は、センサノード設定情報1101を参照し、センサ種別1202がセンサ種別に一致する列を検索する。さらに、センサノード制御部1001は、検索された列に含まれる行の中から、圧縮率を包含する範囲に対応する行を特定する。センサノード制御部1001は、特定された行のパラメータを取得する。
センサノード制御部1001は、データレート管理情報212の全てのレコードに対して同様の処理を実行する。以上がステップS1302の処理の説明である。
次に、センサノード制御部1001は、取得したパラメータを制御内容として含む制御命令を中央処理サーバ40に送信する(ステップS1303)。
センサノード20は、制御命令を受信した場合、制御命令に含まれる制御内容にしたがって、センサ101、増幅器102、及びADC103の設定を変更する。
実施例2によれば、エッジサーバ30は、センサデータの解析結果等から算出される圧縮率に基づいてセンサノード20を制御することによって、センサノード20の消費電力を最適化することができる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD−ROM、DVD−ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD−RW、CD−R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。