(57)【要約】【課題】データベースへのデータの格納が間に合わなくなることを防ぐサーバー装置及びプログラムを提供すること。【解決手段】実施形態のサーバー装置は、第１の記憶部、判定部及び格納部を備える。第１の記憶部は、前記受信データが条件を満たすことを判定する。格納部は、前記判定部によって前記条件を満たすと判定された場合、前記受信データを前記データベースに格納する。前記条件は、前記受信データの受信又は記憶からの期間と、前記受信データのデータ量と、前記受信データのデータ数と、のうちの少なくともいずれか１つを用いたものである。【選択図】図１
2020021361.tif 000002
【特許請求の範囲】
【請求項１】
データベースに未格納の受信データを一時的に記憶する第１の記憶部と、
前記受信データが条件を満たすことを判定する判定部と、
前記判定部によって前記条件を満たすと判定された場合、前記受信データを前記データベースに格納する格納部と、を備え、
前記条件は、
前記受信データの受信又は記憶からの期間と、
前記受信データのデータ量と、
前記受信データのデータ数と、のうちの少なくともいずれか１つを用いたものであるサーバー装置。
【請求項２】
前記データベースを記憶する第２の記憶部をさらに備える、請求項１に記載のサーバー装置。
【請求項３】
前記条件は、前記受信データの受信又は記憶からの期間が第１の閾値以上であることである、請求項１又は請求項２に記載のサーバー装置。
【請求項４】
前記条件は、前記受信データのデータ量が第２の閾値以上であることである、請求項１又は請求項２に記載のサーバー装置。
【請求項５】
前記条件は、前記受信データのデータ数が第３の閾値以上であることである、請求項１又は請求項２に記載のサーバー装置。
【請求項６】
データベースに未格納の受信データを種別ごとに一時的に記憶する第１の記憶部と、
前記受信データが条件を満たすことを前記種別ごとに判定する判定部と、
前記判定部によって前記条件を満たすと判定された前記種別の前記受信データを前記データベースに格納する格納部と、を備え、
前記条件は、
前記受信データの受信又は記憶からの期間と、
前記受信データのデータ量と、
前記受信データのデータ数と、のうちの少なくともいずれか１つを用いたものであるサーバー装置。
【請求項７】
データベースに未格納の受信データを一時的に記憶する第１の記憶部と、
前記受信データが条件を満たすことを判定する判定部と、
前記判定部によって前記条件を満たすと判定された場合、前記受信データを、前記データベースを管理する装置に送信する送信部と、を備え、
前記条件は、
前記受信データの受信又は記憶からの期間と、
前記受信データのデータ量と、
前記受信データのデータ数と、のうちの少なくともいずれか１つを用いたものであるサーバー装置。
【請求項８】
記憶装置を備えるサーバー装置が備えるプロセッサーを、
データベースに未格納の受信データを一時的に前記記憶装置に記憶させる記憶制御部と、
前記受信データが条件を満たすことを判定する判定部と、
前記判定部によって前記条件を満たすと判定された場合、前記受信データを前記データベースに格納する格納部と、して機能させ、
前記条件は、
前記受信データの受信又は記憶からの期間と、
前記受信データのデータ量と、
前記受信データのデータ数と、のうちの少なくともいずれか１つを用いたものであるプログラム。
【請求項９】
記憶装置を備えるサーバー装置が備えるプロセッサーを、
データベースに未格納の受信データを種別ごとに一時的に前記記憶装置に記憶させる記憶制御部と、
前記受信データが条件を満たすことを前記種別ごとに判定する判定部と、
前記判定部によって前記条件を満たすと判定された前記種別の前記受信データを前記データベースに格納する格納部と、して機能させ、
前記条件は、
前記受信データの受信又は記憶からの期間と、
前記受信データのデータ量と、
前記受信データのデータ数と、のうちの少なくともいずれか１つを用いたものであるプログラム。
【請求項１０】
記憶装置及び通信装置を備えるサーバー装置が備えるプロセッサーを、
データベースに未格納の受信データを一時的に前記記憶装置に記憶させる記憶制御部と、
前記受信データが条件を満たすことを判定する判定部と、
前記判定部によって前記条件を満たすと判定された場合、前記受信データを、前記データベースを管理する装置に送信するように前記通信装置を制御する通信制御部と、して機能させ、
前記条件は、
前記受信データの受信又は記憶からの期間と、
前記受信データのデータ量と、
前記受信データのデータ数と、のうちの少なくともいずれか１つを用いたものであるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、サーバー装置及びプログラムに関する。
【背景技術】
【０００２】
近年、社会インフラ向けの制御システムなどにおいて、ビッグデータの活用が注目されている。例えば、制御システムからリアルタイムに生成されるセンサーデータに対し、機械学習又は統計解析などの手法を適用することにより、機器の故障予測及び制御の効率化などを図ることができる。機械学習などの手法を適用しない従来の制御システムでは、ＰＬＣ（programmable logic controller）などの制御装置で行われるリアルタイム制御において生成されるセンサーデータは、制御演算後に短期間で破棄されることが一般的であった。一方、機械学習などの手法を適用する制御システムは、長期にわたって多くのデータを保持しておくことが望まれる。このようなデータは、取扱いやすさの観点からデータベース（ＤＢ（database））保存が求められている。このため、リアルタイムに生成されるデータを制御周期時間内にデータベースに格納する必要がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−２５６０９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、リアルタイムに生成されるデータをクラウドサーバーのデータベースに格納する際、データを受信する都度データベースに格納すると、格納に要する時間が受信周期より大きくなり、データベースへの格納が間に合わなくなる場合がある。
本発明の実施形態が解決しようとする課題は、データベースへのデータの格納が間に合わなくなることを防ぐサーバー装置及びプログラムを提供することである。
【課題を解決するための手段】
【０００５】
実施形態のサーバー装置は、第１の記憶部、判定部及び格納部を備える。第１の記憶部は、前記受信データが条件を満たすことを判定する。格納部は、前記判定部によって前記条件を満たすと判定された場合、前記受信データを前記データベースに格納する。前記条件は、前記受信データの受信又は記憶からの期間と、前記受信データのデータ量と、前記受信データのデータ数と、のうちの少なくともいずれか１つを用いたものである。
【図面の簡単な説明】
【０００６】
【図１】第１実施形態及び第２実施形態に係る制御システムの全体構成の一例の概要を示すブロック図。
【図２】第１実施形態及び第２実施形態に係る制御システム及び当該制御システムに含まれる構成要素の要部回路構成の一例を示すブロック図。
【図３】図２中の制御装置のプロセッサーによる第１実施形態〜第３実施形態に係る処理の一例を示すフローチャート。
【図４】図２中のクラウドサーバーのプロセッサーによる第１実施形態に係る処理の一例を示すフローチャート。
【図５】第１実施形態に係る制御システムにおける情報の流れの一例を示すシーケンス図。
【図６】図２中のクラウドサーバーのプロセッサーによる第２実施形態に係る処理の一例を示すフローチャート。
【図７】データ構造の一例を説明するための図。
【図８】第３実施形態に係る制御システムの全体構成の一例の概要を示すブロック図。
【図９】第３実施形態に係る制御システム及び当該制御システムに含まれる構成要素の要部回路構成の一例を示すブロック図。
【図１０】図９中のエッジサーバーのプロセッサーによる第３実施形態に係る処理の一例を示すフローチャート。
【図１１】図９中のクラウドサーバーのプロセッサーによる第３実施形態に係る処理の一例を示すフローチャート。
【発明を実施するための形態】
【０００７】
以下、いくつかの実施形態に係る制御システムについて図面を用いて説明する。なお、以下の実施形態の説明に用いる各図面は、説明のため、構成を省略して示している場合がある。
〔第１実施形態〕
まず、図１に基づいて第１実施形態に係る制御システム１の構成を説明する。図１は、第１実施形態に係る制御システム１の全体構成の一例の概要を示すブロック図である。
制御システム１は、例えば、駅務システム、交通システム、防災システム、通信システム、水処理システム等の社会インフラシステム、ビル制御システム、ＰＯＳシステム、物流システム及び軍事システムなどの種々のシステムとして適用可能である。制御システム１は、一例として、クラウドサーバー１０及び複数の制御装置２０を含む。
クラウドサーバー１０及び制御装置２０は、一例としてネットワークＮＷ１に接続する。ネットワークＮＷ１は、典型的にはインターネットを含む通信網である。ネットワークＮＷ１は、典型的にはＷＡＮ（wide area network）を含む通信網である。ネットワークＮＷ１は、イントラネットなどのプライベートネットワークを含む通信網であっても良い。ネットワークＮＷ１は、ＬＡＮ（local area network）を含む通信網であっても良い。また、ネットワークＮＷ１は、無線回線でも良いし有線回線でも良く、無線回線と有線回線とが混在していても良い。また、ネットワークＮＷ１は、専用線又は公衆携帯電話網などを含む通信網であっても良い。
【０００８】
クラウドサーバー１０は、データベース１００を管理及び記憶する。データベース１００は、制御装置２０から送信されるデータなどの記憶及び管理などのために設けられる。また、クラウドサーバー１０は、データベース１００に記憶されたデータに基づき、機械学習又は統計解析などの手法に基づき、各種処理又は各種解析などを行う。なお、データベース１００に記憶されるデータは、ビッグデータなどとも呼ばれる場合がある。クラウドサーバー１０は、サーバー装置の一例である。
【０００９】
制御装置２０は、例えば、センサー３１、アクチュエーター３２又は報知装置３３などとネットワークＮＷ２などを介して接続する。なお、センサー３１、アクチュエーター３２及び報知装置３３などを総称して以下「各種装置３０」という。また、制御装置２０は、各種装置３０と直接接続されていても良い。制御装置２０は、各種装置３０から送信されるデータを受信する。また、制御装置２０は、各種装置３０を制御する。ネットワークＮＷ２は、典型的にはイントラネットなどのプライベートネットワークを含む通信網である。ネットワークＮＷ２は、典型的にはＬＡＮを含む通信網である。ネットワークＮＷ２は、インターネットを含む通信網であっても良い。ネットワークＮＷ２は、ＷＡＮを含む通信網であっても良い。また、ネットワークＮＷ２は、Ｐｒｏｆｉｂｕｓ、Ｍｏｄｂｕｓ又はＴＣ−ｎｅｔなどのフィールドバスであってもよい。また、ネットワークＮＷ２は、無線回線でも良いし有線回線でも良く、無線回線と有線回線とが混在していても良い。また、ネットワークＮＷ２は、専用線又は公衆携帯電話網などを含む通信網であっても良い。
【００１０】
センサー３１は、例えば、温度、湿度、圧力又は流量などの物理量を計測する。センサー３１は、計測したデータを制御装置２０に出力する。なお、センサー３１は、複数種類の物理量を計測するものであっても良い。
アクチュエーター３２は、例えば、モーター又はロボットアームなどである。アクチュエーター３２は、例えば、制御装置２０による制御に基づき動作する。
報知装置３３は、例えば、ＬＥＤ表示器、モニター、警報装置又はスピーカーなどである。報知装置３３は、例えば、制御装置２０から送信される演算結果に従い動作する。
【００１１】
なお、複数の制御装置２０のそれぞれは、例えば、複数の領域（領域ａ、領域ｂ、…）のいずれかに設置される。なお、領域とは、例えばＬＡＮなどで接続された範囲であり、例えば地域、施設、建物、フロア、部屋又は法人などのような一定の範囲である。また、領域ａに設置された制御装置２０を制御装置２０ａ、領域ｂに設置された制御装置２０を制御装置２０ｂ、…のようにいうものとする。また、領域ａに設置された各種装置３０を、センサー３１ａ、アクチュエーター３２ａ又は報知装置３３ａのようにいうものとする。領域ｂ以降も同様とする。すなわち、領域ａに設置される装置の符号にａを、領域ｂに設置される装置の符号にｂを、…、付すものとする。
また、制御装置２０は、それぞれの領域に対して複数設置されていても良い。例えば、領域ａには、複数の制御装置２０として、制御装置２０ａ１、制御装置２０ａ２、…が設置される。領域ｂ以降についても同様とする。また、制御装置２０ａ１に接続される各種装置３０をセンサー３１ａ１、アクチュエーター３２ａ１又は報知装置３３ａ１のようにいうものとする。制御装置２０ａ２以降についても同様とする。領域ｂ以降についても同様とする。
【００１２】
次に、図２に基づいて、制御システム１に含まれる各装置の構成を説明する。図２は、第１実施形態に係る制御システム１及び制御システム１に含まれる構成要素の要部回路構成の一例を示すブロック図である。
【００１３】
クラウドサーバー１０は、一例として、プロセッサー１１、ＲＯＭ（read-only memory）１２、ＲＡＭ（random-access memory）１３、補助記憶デバイス１４、通信Ｉ／Ｆ１５及びＲＴＣ（real-time clock）１６を含む。そして、これら各部がバス１７などによって接続される。
【００１４】
プロセッサー１１は、クラウドサーバー１０の動作に必要な演算及び制御などの処理を行うコンピューターの中枢部分に相当する。プロセッサー１１は、ＲＯＭ１２又は補助記憶デバイス１４などに記憶されたシステムソフトウェア、アプリケーションソフトウェア又はファームウェアなどのプログラムに基づいて、クラウドサーバー１０の各種の機能を実現するべく各部を制御する。なお、当該プログラムの一部又は全部は、プロセッサー１１の回路内に組み込まれていても良い。プロセッサー１１は、例えば、ＣＰＵ（central processing unit）、ＭＰＵ（micro processing unit）、ＳｏＣ（system on a chip）、ＤＳＰ（digital signal processor）、ＧＰＵ（graphics processing unit）、ＡＳＩＣ（application specific integrated circuit）、ＰＬＤ（programmable logic device）又はＦＰＧＡ（field-programmable gate array）などである。あるいは、プロセッサー１１は、これらのうちの複数を組み合わせたものである。
【００１５】
ＲＯＭ１２は、プロセッサー１１を中枢とするコンピューターの主記憶装置に相当する。ＲＯＭ１２は、専らデータの読み出しに用いられる不揮発性メモリである。ＲＯＭ１２は、上記のプログラムを記憶する。また、ＲＯＭ１２は、プロセッサー１１が各種の処理を行う上で使用するデータ又は各種の設定値などを記憶する。
【００１６】
ＲＡＭ１３は、プロセッサー１１を中枢とするコンピューターの主記憶装置に相当する。ＲＡＭ１３は、データの読み書きに用いられるメモリである。ＲＡＭ１３は、プロセッサー１１が各種の処理を行う上で一時的に使用するデータを記憶しておく、いわゆるワークエリアなどとして利用される。
【００１７】
補助記憶デバイス１４は、プロセッサー１１を中枢とするコンピューターの補助記憶装置に相当する。補助記憶デバイス１４は、例えばＥＥＰＲＯＭ（electric erasable programmable read-only memory）、ＨＤＤ（hard disk drive）又はＳＳＤ（solid state drive）などである。補助記憶デバイス１４は、上記のプログラムを記憶する場合もある。また、補助記憶デバイス１４は、プロセッサー１１が各種の処理を行う上で使用するデータ、プロセッサー１１での処理によって生成されたデータ又は各種の設定値などを保存する。
また、補助記憶デバイス１４は、データベース１００を記憶する。したがって、補助記憶デバイス１４は、データベース１００を記憶する第２の記憶部の一例である。
【００１８】
ＲＯＭ１２又は補助記憶デバイス１４に記憶されるプログラムは、後述する処理を実行するためのプログラムを含む。一例として、クラウドサーバー１０は、当該プログラムがＲＯＭ１２又は補助記憶デバイス１４に記憶された状態でクラウドサーバー１０の管理者などへと譲渡される。しかしながら、クラウドサーバー１０は、当該プログラムがＲＯＭ１２又は補助記憶デバイス１４に記憶されない状態で当該管理者などに譲渡されても良い。また、クラウドサーバー１０は、当該プログラムとは別のプログラムがＲＯＭ１２又は補助記憶デバイス１４に記憶された状態で当該管理者などに譲渡されても良い。そして、後述する処理を実行するためのプログラムが別途に当該管理者などへと譲渡され、当該管理者又はサービスマンなどによる操作の下にＲＯＭ１２又は補助記憶デバイス１４へと書き込まれても良い。このときのプログラムの譲渡は、例えば、磁気ディスク、光磁気ディスク、光ディスク又は半導体メモリなどのようなリムーバブルな記憶媒体に記録して、あるいはネットワークＮＷ２などを介したダウンロードにより実現できる。
【００１９】
通信Ｉ／Ｆ１５は、クラウドサーバー１０がネットワークＮＷ１などを介して通信するためのインターフェースである。
ＲＴＣ１６は、時計又は時計機能を内蔵する回路などである。
バス１７は、コントロールバス、アドレスバス及びデータバスなどを含み、クラウドサーバー１０の各部で授受される信号を伝送する。
【００２０】
制御装置２０は、一例として、プロセッサー２１、ＲＯＭ２２、ＲＡＭ２３、補助記憶デバイス２４、第１の通信Ｉ／Ｆ２５及び第２の通信Ｉ／Ｆ２６を含む。そして、これら各部がバス２７などによって接続される。
【００２１】
プロセッサー２１は、制御装置２０の動作に必要な演算及び制御などの処理を行うコンピューターの中枢部分に相当する。プロセッサー２１は、ＲＯＭ２２又は補助記憶デバイス２４などに記憶されたシステムソフトウェア、アプリケーションソフトウェア又はファームウェアなどのプログラムに基づいて、制御装置２０の各種の機能を実現するべく各部を制御する。なお、当該プログラムの一部又は全部は、プロセッサー２１の回路内に組み込まれていても良い。プロセッサー２１は、例えば、ＣＰＵ、ＭＰＵ、ＳｏＣ、ＤＳＰ、ＧＰＵ、ＡＳＩＣ、ＰＬＤ又はＦＰＧＡなどである。あるいは、プロセッサー２１は、これらのうちの複数を組み合わせたものである。
【００２２】
ＲＯＭ２２は、プロセッサー２１を中枢とするコンピューターの主記憶装置に相当する。ＲＯＭ２２は、専らデータの読み出しに用いられる不揮発性メモリである。ＲＯＭ２２は、上記のプログラムを記憶する。また、ＲＯＭ２２は、プロセッサー２１が各種の処理を行う上で使用するデータ又は各種の設定値などを記憶する。
【００２３】
ＲＡＭ２３は、プロセッサー２１を中枢とするコンピューターの主記憶装置に相当する。ＲＡＭ２３は、データの読み書きに用いられるメモリである。ＲＡＭ２３は、プロセッサー２１が各種の処理を行う上で一時的に使用するデータを記憶しておく、いわゆるワークエリアなどとして利用される。
【００２４】
補助記憶デバイス２４は、プロセッサー２１を中枢とするコンピューターの補助記憶装置に相当する。補助記憶デバイス２４は、例えばＥＥＰＲＯＭ、ＨＤＤ又はＳＳＤなどである。補助記憶デバイス２４は、上記のプログラムを記憶する場合もある。また、補助記憶デバイス２４は、プロセッサー２１が各種の処理を行う上で使用するデータ、プロセッサー２１での処理によって生成されたデータ又は各種の設定値などを保存する。
【００２５】
ＲＯＭ２２又は補助記憶デバイス２４に記憶されるプログラムは、後述する処理を実行するためのプログラムを含む。一例として、制御装置２０は、当該プログラムがＲＯＭ２２又は補助記憶デバイス２４に記憶された状態で制御装置２０の管理者などへと譲渡される。しかしながら、制御装置２０は、当該プログラムがＲＯＭ２２又は補助記憶デバイス２４に記憶されない状態で当該管理者などに譲渡されても良い。また、制御装置２０は、当該プログラムとは別のプログラムがＲＯＭ２２又は補助記憶デバイス２４に記憶された状態で当該管理者などに譲渡されても良い。そして、後述する処理を実行するためのプログラムが別途に当該管理者などへと譲渡され、当該管理者又はサービスマンなどによる操作の下にＲＯＭ２２又は補助記憶デバイス２４へと書き込まれても良い。このときのプログラムの譲渡は、例えば、磁気ディスク、光磁気ディスク、光ディスク又は半導体メモリなどのようなリムーバブルな記憶媒体に記録して、あるいはネットワークＮＷ２などを介したダウンロードにより実現できる。
【００２６】
第１の通信Ｉ／Ｆ２５は、制御装置２０がネットワークＮＷ１などを介してクラウドサーバー１０などと通信するためのインターフェースである。
第２の通信Ｉ／Ｆ２６は、制御装置２０がネットワークＮＷ２などを介して各種装置３０などと通信するためのインターフェースである。
なお、第１の通信Ｉ／Ｆ２５及び第２の通信Ｉ／Ｆ２６は、共通のインターフェースであっても良い。
【００２７】
バス２７は、コントロールバス、アドレスバス及びデータバスなどを含み、制御装置２０の各部で授受される信号を伝送する。
【００２８】
以下、第１実施形態に係る制御システム１の動作を図３〜図５などに基づいて説明する。なお、以下の動作説明における処理の内容は一例であって、同様な結果を得ることが可能な様々な処理を適宜に利用できる。図３は、制御装置２０のプロセッサー２１による処理のフローチャートである。プロセッサー２１は、例えば、ＲＯＭ２２又は補助記憶デバイス２４などに記憶されたプログラムに基づいてこの処理を実行する。図４は、クラウドサーバー１０のプロセッサー１１による処理のフローチャートである。プロセッサー１１は、例えば、ＲＯＭ１２又は補助記憶デバイス１４などに記憶されたプログラムに基づいてこの処理を実行する。図５は、第１実施形態に係る制御システム１の情報の流れの一例を示すシーケンス図である。なお、図５は、制御システム１における情報の流れを網羅するものではなく、図示しない情報の流れが存在しても良い。また、図５において図３又はず４と同様の処理については同一の符号を付している。なお、クラウドサーバー１０のプロセッサー１１は、図４に示す処理を開始するとき、変数ｘ１及び変数ｎ１を、ＲＡＭ１３などに割り当てる。ただし、変数ｘ１及び変数ｎ１の初期値は０とする。なお、変数ｘ１は、データ量を示す。また、変数ｎ１は、データ数を示す。
【００２９】
図３のステップＳ１１においてプロセッサー２１は、第２の通信Ｉ／Ｆ２６によってセンサー３１などから送信されたデータが受信されるのを待ち受けている。プロセッサー２１は、データが受信されたならば、ステップＳ１１においてＹｅｓと判定してステップＳ１１へと進む。さらに、プロセッサー２１は、新たにプロセス又はスレッドなどを生成する。そして、プロセッサー２１は、当該プロセス又はスレッドなどにより、ステップＳ１２〜ステップＳ１４に示す処理を実行する。すなわち、プロセッサー２１は、ステップＳ１２〜ステップＳ１４に示す処理をステップＳ１１の処理と並行又は並列で実行する。なお、プロセッサー２１は、ステップＳ１２〜ステップＳ１４に示す処理を、当該処理を実行するプロセス又はスレッドなどが生成される前のステップＳ１１において受信されたデータを対象として実行する。
【００３０】
ステップＳ１２においてプロセッサー２１は、ステップＳ１１で受信された対象データに基づく演算を行う。
【００３１】
ステップＳ１３においてプロセッサー２１は、ステップＳ１２の演算結果に基づく制御信号などのデータをアクチュエーター３２又は報知装置３３などの各種装置３０に送信するように第１の通信Ｉ／Ｆ２５に対して指示する。この指示を受けて第１の通信Ｉ／Ｆ２５は、当該データをアクチュエーター３２又は報知装置３３などの各種装置３０に送信する。送信された当該データは、各種装置３０によって受信される。当該データを受信した各種装置３０は、受信したデータの内容に基づく動作を実行する。
【００３２】
ステップＳ１４においてプロセッサー２１は、ステップＳ１１で受信された対象データまたはステップＳ１３の演算結果に基づくデータなどをクラウドサーバー１０に送信するように第１の通信Ｉ／Ｆ２５に対して指示する。この指示を受けて第１の通信Ｉ／Ｆ２５は、当該データをクラウドサーバー１０に送信する。送信された当該データは、クラウドサーバー１０の通信Ｉ／Ｆ１５によって受信される。プロセッサー２１は、ステップＳ１４の処理の後、ステップＳ１２〜ステップＳ１４の処理を実行したプロセス又はスレッドなどを終了する。
以上のように、プロセッサー２１は、各種装置３０から送信されたデータを受信するたびにステップＳ１２〜ステップＳ１４の処理を行う。
【００３３】
一方、図４のステップＳ２１においてクラウドサーバー１０のプロセッサー１１は、通信Ｉ／Ｆ１５によってデータが受信されるのを待ち受けている。プロセッサー１１は、データが受信されたならば、ステップＳ２１においてＹｅｓと判定してステップＳ２２へと進む。
【００３４】
ステップＳ２２においてプロセッサー１１は、ステップＳ２１において受信されたデータを一時的に記憶するべく、当該データをＲＡＭ１３などに記憶させる。ここでＲＡＭ１３に記憶されるデータを、以下「第１の一時データ」という。
第１の一時データは、データベース１００に未格納である。したがって、ＲＡＭ１３は、データベース１００に未格納の受信データを一時的に記憶する第１の記憶部の一例である。また、ＲＡＭ１３は、記憶装置の一例である。したがって、プロセッサー１１は、ステップＳ２２の処理を行うことで、データベース１００に未格納の受信データを一時的に記憶装置に記憶させる記憶制御部の一例として機能する。
【００３５】
ステップＳ２３においてプロセッサー１１は、ステップＳ２１において受信されたデータのデータ量を変数ｘ１の値に加える。
【００３６】
ステップＳ２４においてプロセッサー１１は、変数ｎ１の値を１増加させる。プロセッサー１１は、ステップＳ２４の処理の後、ステップＳ２１へと戻る。
【００３７】
また、プロセッサー１１は、ステップＳ２１〜ステップＳ２４の処理と並行又は並列で、ステップＳ３１〜ステップＳ３６の処理を実行する。
ステップＳ３１においてプロセッサー１１は、ＲＡＭ１３に第１の一時データが記憶されているか否かを判定する。プロセッサー１１は、ＲＡＭ１３に第１の一時データが記憶されていないならば、ステップＳ３１においてＮｏと判定してステップＳ３１を繰り返す。対して、プロセッサー１１は、ＲＡＭ１３に第１の一時データが記憶されているならば、ステップＳ３１においてＹｅｓと判定してステップＳ３２へと進む。
【００３８】
ステップＳ３２においてプロセッサー１１は、時間の計測を開始する。例えば、プロセッサー１１は、現在時刻をＲＡＭ１３などに記憶しておく。
【００３９】
ステップＳ３３においてプロセッサー１１は、集約条件を満たすのを待ち受ける。集約条件は、例えば、以下の（ｐ１）〜（ｐ３）のいずれかである。
（ｐ１）ステップＳ３２において時間の計測を開始してからの経過時間（期間）ｔ１が閾値Ｔ１以上である。なお、経過時間の単位は、一例として「ミリ秒」である。例えば、プロセッサー１１は、現在時刻から、ＲＡＭ１３に記憶しておいた時刻を引くことで経過時間ｔ１を求める。
（ｐ２）ＲＡＭ１３に記憶されている第１の一時データのデータ量を示す変数ｘ１の値が閾値Ｔ２以上である。なお、データ量の単位は、一例として「バイト」である。
（ｐ３）ＲＡＭ１３に記憶されている第１の一時データのデータ数を示す変数ｎ１の値が閾値Ｔ３以上である。なお、データ数の単位は、一例として「個」である。
あるいは、集約条件は、以下の（ｐ１）〜（ｐ３）のうちのいずれか複数のＡＮＤ条件又はＯＲ条件であっても良い。すなわち、集約条件は、（ｐ１）ＡＮＤ（ｐ２）、（ｐ１）ＡＮＤ（ｐ３）、（ｐ２）ＡＮＤ（ｐ３）、（ｐ１）ＡＮＤ（ｐ２）ＡＮＤ（ｐ３）、（ｐ１）ＯＲ（ｐ２）、（ｐ１）ＯＲ（ｐ３）、（ｐ２）ＯＲ（ｐ３）、又は（ｐ１）ＯＲ（ｐ２）ＯＲ（ｐ３）などであっても良い。また、集約条件は、（ｐ１）ＡＮＤ（（ｐ２）ＯＲ（ｐ３））などのようにＡＮＤとＯＲを組み合わせた条件であっても良い。
あるいは、集約条件は、以下の（１）式を満たすことである。
Ａ１ｔ１＋Ｂ１ｘ１＋Ｃ１ｎ１＞Ｔ４  （ただし、Ａ１≧０，Ｂ１≧０，Ｃ１≧０，Ａ１＋Ｂ１＋Ｃ１＞０を満たすものとする。）      （１）
ここで、Ａ１、Ｂ１及びＣ１は係数である。また、Ｔ４は、閾値である。また、前述したように、ｔ１、ｘ１、ｎ１は、それぞれ経過時間、データ量、データ数を示す。
なお、閾値Ｔ１〜閾値Ｔ４並びに係数Ａ１、係数Ｂ１及び係数Ｃ１のそれぞれは、例えば、制御システム１、クラウドサーバー１０又はデータベース１００の設計者又は管理者などによって予め定められる。なお、閾値Ｔ１〜閾値Ｔ４並びに係数Ａ１、係数Ｂ１及び係数Ｃ１のそれぞれの値は、設定によって変更が可能であっても良い。また、集約条件としてどの条件を用いるかは、例えば、制御システム１、クラウドサーバー１０又はデータベース１００の設計者又は管理者などによって予め定められる。そして、集約条件としてどの条件を用いるかは、設定によって変更が可能であっても良い。なお、閾値Ｔ１は、第１の閾値の一例である。閾値Ｔ２は、第２の閾値の一例である。閾値Ｔ３は、第３の閾値の一例である。
【００４０】
また、閾値Ｔ１は、制御装置２０の制御周期に基づいて決定されるものであっても良い。例えば、プロセッサー１１は、制御装置２０が制御を行う間隔を示す情報を制御装置２０から取得する。そして、プロセッサー１１は、例えば、当該制御周期のＮ倍を閾値Ｔ１とする。ただし、Ｎは、自然数である。なお、プロセッサー１１は、制御装置２０に接続されているセンサー３１の数が多いほどＮを小さくしても良い。この場合、プロセッサー１１は、当該センサー３１の数を、当該制御装置２０から取得する。
また、閾値Ｔ２は、ＲＡＭ１３の容量又は、ＲＡＭ１３のうちの、図４のフローチャートで示す処理を行うプログラムが使用可能な容量に基づいて決定されるものであっても良い。例えば、プロセッサー１１は、上記容量に一定の割合を乗じた容量を閾値Ｔ２として決定する。
また、閾値Ｔ１〜閾値Ｔ４は、クラウドサーバー１０がステップＳ２１でデータを受信する頻度に基づいて決定されるものであっても良い。例えば、プロセッサー１１は、当該頻度に応じて閾値Ｔ１〜閾値Ｔ４の値を増減させる。
また、閾値Ｔ１〜閾値Ｔ４は、クラウドサーバー１０がステップＳ２１で１回あたりに受信するデータの容量に基づいて決定されるものであっても良い。例えば、プロセッサー１１は、当該容量に応じて閾値Ｔ１〜閾値Ｔ４の値を増減させる。
【００４１】
プロセッサー１１は、集約条件を満たしていると判定するならば、ステップＳ３３においてＹｅｓと判定してステップＳ３４へと進む。
以上より、プロセッサー１１は、ステップＳ３３の処理を行うことで、データが条件を満たすことを判定する判定部として機能する。
【００４２】
ステップＳ３４において、プロセッサー１１は、時間の計測を停止する。また、プロセッサー１１は、変数ｘ１及び変数ｎ１の値をリセットする。すなわち、プロセッサー１１は、変数ｘ１及び変数ｎ１の値を０にする。
【００４３】
ステップＳ３５においてプロセッサー１１は、ＲＡＭ１３に記憶されている第１の一時データを全て読み出す。そして、プロセッサー１１は、読み出したデータを集約する。なお、プロセッサー１１は、ここで読み出した第１の一時データをＲＡＭ１３から削除する。
【００４４】
ステップＳ３６においてプロセッサー１１は、ステップＳ３５で集約したデータをデータベース１００に格納する。
以上より、プロセッサー１１は、ステップＳ３５の処理を行うことで、データをデータベースに格納する格納部として機能する。
プロセッサー１１は、ステップＳ３６の処理の後、ステップＳ３１へと戻る。
【００４５】
第１実施形態の制御システム１によれば、クラウドサーバー１０は、集約条件を満たした場合にデータをデータベース１００に格納する。これにより、クラウドサーバー１０は、データを受信する都度にデータベース１００にデータを格納する場合に比べて、データベース１００への格納の頻度を減らすことができる。これにより、補助記憶デバイス１４へのアクセス回数を減らすことができる。また、これにより、データベース１００へのデータの格納にかかる時間を減らすことができる。したがって、第１実施形態のクラウドサーバー１０は、データベース１００へのデータの格納が間に合わなくなることを防ぐことができる。
【００４６】
また、第１実施形態の制御システム１によれば、クラウドサーバー１０は、集約条件が（ｐ１）である場合、一定時間経過ごとにデータを集約してデータベース１００に格納する。これにより、クラウドサーバー１０は、データベース１００への格納の頻度を減らすことができる。
【００４７】
また、第１実施形態の制御システム１によれば、クラウドサーバー１０は、集約条件が（ｐ２）である場合、一定量のデータを受信するごとにデータを集約してデータベース１００に格納する。これにより、クラウドサーバー１０は、データベース１００への格納の頻度を減らすことができる。
【００４８】
また、第１実施形態の制御システム１によれば、クラウドサーバー１０は、集約条件が（ｐ３）である場合、一定数のデータを受信するごとにデータを集約してデータベース１００に格納する。これにより、クラウドサーバー１０は、データベース１００への格納の頻度を減らすことができる。
【００４９】
〔第２実施形態〕
第２実施形態の制御システム１の構成は、第１実施形態と同様であるので説明を省略する。
【００５０】
第２実施形態の制御システム１は、センサー３１ごと又はセンサー３１の種類ごとにユニークなセンサー番号（identifier）が付与されている。一例として、センサー番号は、０００１、０００２、…のように付与される。また、センサー３１が出力するデータについて、センサー番号とデータの種類との組み合わせごとにユニークなデータＩＤが付与される。一例として、センサー番号０００１のセンサー３１が出力する温度データをデータＩＤ１００１、センサー番号０００２のセンサー３１が出力する温度データをデータＩＤ１００２、センサー番号０００１のセンサー３１が出力する圧力データをデータＩＤ１００３、センサー番号０００１のセンサー３１が出力する流量データをデータＩＤ１００４、…、のようにデータＩＤが付与される。また、センサー３１は、計測データを制御装置２０に送信する場合、当該計測データに対応するデータＩＤを関連付けて送信する。例えば、センサー３１は、データＩＤと計測データとを含むデータを送信することで、計測データにデータＩＤを関連付ける。以上より、データＩＤは、データの種別を示すＩＤの一例である。なお、クラウドサーバー１０は、データＩＤの最小値を示すＩＤ＿ｍｉｎ及びデータＩＤの最大値を示すＩＤ＿ｍａｘを記憶しているものとする。また、データＩＤは、ＩＤ＿ｍｉｎ〜ＩＤ＿ｍａｘの範囲で、１刻みに付与されているものとする。
【００５１】
以下、第２実施形態に係る制御システム１の動作を図３及び図６などに基づいて説明する。なお、以下の動作説明における処理の内容は一例であって、同様な結果を得ることが可能な様々な処理を適宜に利用できる。図６は、クラウドサーバー１０のプロセッサー１１による処理のフローチャートである。プロセッサー１１は、例えば、ＲＯＭ１２又は補助記憶デバイス１４などに記憶されたプログラムに基づいてこの処理を実行する。なお、図６において第１実施形態の図４と同様の処理については同一の符号を付している。また、プロセッサー１１は、一例として、図６に示す処理を開始するとき、変数ｉ、変数ｘ２及び変数ｎ２を、ＲＡＭ１３などに割り当てる。変数ｉは、データＩＤを示す。変数ｘ２は、例えば、データＩＤごとのデータ量を示す配列である。変数ｎ２は、例えば、データＩＤごとのデータ数を示す配列である。なお、変数ｘ２及び変数ｎ２の各要素の初期値は全て０とする。
【００５２】
第２実施形態の制御装置２０は、第１実施形態の図３に示す処理と同様の処理をする。ただし、第２実施形態では、制御装置２０は、ステップＳ１４においてクラウドサーバー１０に送信するデータに、対応するデータＩＤを関連付けて送信する。あるいは、制御装置２０は、ステップＳ１４において、図７に示すようなデータ構造のデータを送信しても良い。図７は、データ構造の一例について説明するための図である。図７に示すデータ構造は、データの順番及び区切り位置がわかるように、センサー種別及び、センサー番号及びデータサイズなどを予め定義されたものである。当該定義は、制御装置２０及びクラウドサーバー１０が記憶しておく。これにより、データＩＤを送信しなくてもデータＩＤの特定が可能となる。
【００５３】
第２実施形態のクラウドサーバー１０のプロセッサー１１は、図６のステップＳ２１においてＹｅｓと判定したならばステップＳ４１へと進む。なお、ステップＳ２１で受信されたデータに対応するデータＩＤを、以下「受信ＩＤ」というものとする。
ステップＳ４１においてプロセッサー１１は、図４のステップＳ２２と同様に、図６のステップＳ２１において受信されたデータを一時的に記憶するべく、当該データをＲＡＭ１３などに記憶させる。このとき、プロセッサー１１は、当該データを、受信ＩＤと関連付けて記憶させる。ここでＲＡＭ１３に記憶されるデータは、第１実施形態と同様に「第１の一時データ」というものとする。
以上より、プロセッサー１１は、ステップＳ４１の処理を行うことで、ステップＳ２２と同様に、記憶制御部の一例として機能する。
【００５４】
ステップＳ４２においてプロセッサー１１は、ステップＳ２１で受信されたデータのデータ量を、変数ｘ２［受信ＩＤ−ＩＤ＿ｍｉｎ］の値に加える。なお、変数ｘ２［ｋ］は、変数ｘ２のｋ番目の要素を示す。ただし、ｋは、０以上の自然数とする。
【００５５】
ステップＳ４３においてプロセッサー１１は、変数ｎ２［受信ＩＤ−ＩＤ＿ｍｉｎ］の値を１増加させる。なお、変数ｎ２［ｋ］は、変数ｎ２のｋ番目の要素を示す。プロセッサー１１は、ステップＳ４３の処理の後、ステップＳ２１へと戻る。
【００５６】
プロセッサー１１は、ステップＳ２１及びステップＳ４１〜ステップＳ４３の処理と並行又は並列で、ステップＳ５１〜ステップＳ５９の処理を実行する。
ステップＳ５１においてプロセッサー１１は、変数ｉの値をＩＤ＿ｍｉｎにする。
【００５７】
ステップＳ５２においてプロセッサー１１は、データＩＤがｉであるデータについて時間を計測中であるか否かを判定する。プロセッサー１１は、データＩＤがｉであるデータについて時間を計測中でないならば、ステップＳ５２においてＮｏと判定してステップＳ５３へと進む。
【００５８】
ステップＳ５３においてプロセッサー１１は、ＲＡＭ１３に、データＩＤがｉである第１の一時データが記憶されているか否かを判定する。プロセッサー１１は、ＲＡＭ１３に、データＩＤがｉである第１の一時データが記憶されていないならば、ステップＳ５３においてＮｏと判定してステップＳ５１へと戻る。
【００５９】
対して、プロセッサー１１は、ＲＡＭ１３に、データＩＤがｉである第１の一時データが記憶されているならば、ステップＳ５３においてＹｅｓと判定してステップＳ５４へと進む。また、プロセッサー１１は、データＩＤがｉであるデータについての時間計測を行っているならば、ステップＳ５２においてＹｅｓと判定してステップＳ５４へと進む。
ステップＳ５４においてプロセッサー１１は、データＩＤがｉであるデータについての時間計測を開始する。例えば、プロセッサー１１は、現在時刻をｉの値と関連付けてＲＡＭ１３などに記憶しておく。
【００６０】
ステップＳ５５においてプロセッサー１１は、データＩＤがｉである第１の一時データについての集約条件を満たすのを待ち受ける。当該集約条件は、例えば、以下の（ｐ１１）〜（ｐ１３）のいずれかである。
（ｐ１１）ステップＳ５４においてデータＩＤがｉであるデータについての時間計測を開始してからの経過時間（期間）ｔ２が閾値Ｔ１１以上である。例えば、プロセッサー１１は、現在時刻から、ｉの値と関連付けてＲＡＭ１３に記憶した時刻を引くことで経過時間ｔ２を求める。
（ｐ１２）ＲＡＭ１３に記憶されている、データＩＤがｉである第１の一時データのデータ量を示す、変数ｘ２［ｉ−ＩＤ＿ｍｉｎ］の値が、閾値Ｔ１２以上である。
（ｐ１３）ＲＡＭ１３に記憶されている、データＩＤがｉである第１の一時データのデータ数を示す、変数ｎ２［ｉ−ＩＤ＿ｍｉｎ］の値が、閾値Ｔ１３以上である。
あるいは、当該集約条件は、（ｐ１１）〜（ｐ１３）のうちのいずれか複数のＡＮＤ条件又はＯＲ条件であっても良い。すなわち、当該集約条件は、（ｐ１１）ＡＮＤ（ｐ１２）、（ｐ１１）ＡＮＤ（ｐ１３）、（ｐ１２）ＡＮＤ（ｐ１３）、（ｐ１１）ＡＮＤ（ｐ１２）ＡＮＤ（ｐ１３）、（ｐ１１）ＯＲ（ｐ１２）、（ｐ１１）ＯＲ（ｐ１３）、（ｐ１２）ＯＲ（ｐ１３）、又は（ｐ１１）ＯＲ（ｐ１２）ＯＲ（ｐ１３）などであっても良い。また、集約条件は、（ｐ１１）ＡＮＤ（（ｐ１２）ＯＲ（ｐ１３））などのようにＡＮＤとＯＲを組み合わせた条件であっても良い。
あるいは、集約条件は、以下の（２）式を満たすことである。
Ａ２ｔ１＋Ｂ２ｘ１＋Ｃ２ｎ１＞Ｔ１４  （ただし、Ａ２≧０，Ｂ２≧０，Ｃ２≧０，Ａ２＋Ｂ２＋Ｃ２＞０を満たすものとする。）      （２）
ここで、Ａ２、Ｂ２及びＣ２は係数である。また、Ｔ１４は、閾値である。また、前述したように、ｔ２、ｘ２、ｎ２は、それぞれ経過時間、データ量、データ数である。
なお、閾値Ｔ１１〜閾値Ｔ１４並びに係数Ａ２、係数Ｂ２及び係数Ｃ２のそれぞれは、例えば、制御システム１、クラウドサーバー１０又はデータベース１００の設計者又は管理者などによって予め定められる。なお、閾値Ｔ１１〜閾値Ｔ１４並びに係数Ａ２、係数Ｂ２及び係数Ｃ２のそれぞれの値は、設定によって変更が可能であっても良い。また、集約条件としてどの条件を用いるかは、例えば、制御システム１、クラウドサーバー１０又はデータベース１００の設計者又は管理者などによって予め定められる。そして、集約条件としてどの条件を用いるかは、設定によって変更が可能であっても良い。
【００６１】
プロセッサー１１は、データＩＤがｉであるデータについての集約条件を満たしていると判定するならば、ステップＳ５５においてＹｅｓと判定してステップＳ５６へと進む。
以上より、プロセッサー１１は、ステップＳ５５の処理を行うことで、データが条件を満たすことをデータの種別ごとに判定する判定部として機能する。
【００６２】
ステップＳ５６においてプロセッサー１１は、データＩＤがｉであるデータについての時間計測を停止する。また、プロセッサー１１は、変数ｘ２［ｉ−ＩＤ＿ｍｉｎ］及び変数ｎ２［ｉ−ＩＤ＿ｍｉｎ］の値をリセットする。すなわち、プロセッサー１１は、変数ｘ２［ｉ−ＩＤ＿ｍｉｎ］及び変数ｎ２［ｉ−ＩＤ＿ｍｉｎ］の値を０にする。
【００６３】
ステップＳ５７においてプロセッサー１１は、ＲＡＭ１３に記憶されている、データＩＤがｉであるデータを全て読み出す。そして、プロセッサー１１は、読み出したデータを集約する。なお、プロセッサー１１は、ここで読み出した第１の一時データをＲＡＭ１３から削除する。
【００６４】
ステップＳ５８においてプロセッサー１１は、ステップＳ５７で集約したデータをデータベース１００に格納する。
以上より、プロセッサー１１は、ステップＳ５７の処理を行うことで、データをデータベースに格納する格納部として機能する。
【００６５】
ステップＳ５９においてプロセッサー１１は、変数ｉの値が値ＩＤ＿ｍａｘ以上であるか否かを判定する。プロセッサー１１は、変数ｉの値が値ＩＤ＿ｍａｘ以上であるならば、ステップＳ５９においてＹｅｓと判定してステップＳ５１へと戻る。
【００６６】
対して、プロセッサー１１は、変数ｉの値が値ＩＤ＿ｍａｘ未満であるならば、ステップＳ５９においてＮｏと判定してステップＳ６０へと進む。また、プロセッサー１１は、データＩＤがｉであるデータについての集約条件を満たしていないと判定するならば、ステップＳ５５においてＮｏと判定してステップＳ６０へと進む。
ステップＳ６０においてプロセッサー１１は、変数ｉの値を１増加させる。これにより、次のデータＩＤについて、ステップＳ５２〜ステップＳ５９の処理を行うことができる。そして、プロセッサー１１は、以上のように処理を繰り返すことで、ＩＤ＿ｍｉｎからＩＤ＿ｍａｘまでのそれぞれに対してステップＳ５２〜ステップＳ５９の処理を行う。プロセッサー１１は、ステップＳ６０の処理の後、ステップＳ５２へと戻る。
【００６７】
第２実施形態の制御システム１は、第１実施形態と同様の効果が得られる。
また、第２実施形態の制御システム１によれば、クラウドサーバー１０は、データＩＤごとにデータをデータベース１００に格納する。なお、機械学習又は統計解析などの手法を適用する場合、多量の同種のデータを用いることが多い。したがって、同種のデータがまとまっていることで、機械学習又は統計解析などの手法を適用する場合においてデータの利用がしやすい。
【００６８】
〔第３実施形態〕
第３実施形態の制御システム１ｂについて、図８に基づいて説明する。図８は、第３実施形態に係る制御システム１ｂの全体構成の一例の概要を示すブロック図である。なお、図８において図１と同様の要素については同一の符号を付している。また、制御システム１ｂにおいて制御システム１と同様の部分については説明を省略する。
制御システム１ｂでは、領域ごとにエッジサーバー４０が設置される。エッジサーバー４０は、制御装置２０とクラウドサーバー１０との間の通信経路上において動作する。また、エッジサーバー４０は、ネットワークＮＷ１及びネットワークＮＷ３に接続するエッジサーバー４０は、サーバー装置の一例である。
【００６９】
また、第３実施形態では、制御装置２０は、ネットワークＮＷ１に代えてネットワークＮＷ３に接続する。ネットワークＮＷ３は、典型的にはイントラネットなどのプライベートネットワークを含む通信網である。ネットワークＮＷ３は、典型的にはＬＡＮを含む通信網である。ネットワークＮＷ３は、インターネットを含む通信網であっても良い。ネットワークＮＷ３は、ＷＡＮを含む通信網であっても良い。また、ネットワークＮＷ３は、無線回線でも良いし有線回線でも良く、無線回線と有線回線とが混在していても良い。また、ネットワークＮＷ３は、専用線又は公衆携帯電話網などを含む通信網であっても良い。ネットワークＮＷ３は、例えば、領域ごとに設けられる。なお、ネットワークＮＷ３とネットワークＮＷ２とは同一のネットワークであっても良い。
【００７０】
次に、図９に基づいて、制御システム１ｂに含まれる各装置の構成を説明する。図９は、第３実施形態に係る制御システム１ｂ及び制御システム１ｂに含まれる構成要素の要部回路構成を示すブロック図である。なお、図９において図２と同様の要素については同一の符号を付している。
第３実施形態では、第１の通信Ｉ／Ｆ２５は、制御装置２０がネットワークＮＷ３などを介してエッジサーバー４０などと通信するためのインターフェースである。
【００７１】
エッジサーバー４０は、一例として、プロセッサー４１、ＲＯＭ４２、ＲＡＭ４３、補助記憶デバイス４４、第１の通信Ｉ／Ｆ４５、第２の通信Ｉ／Ｆ４６及びＲＴＣ４７を含む。そして、これら各部がバス４８などによって接続される。
【００７２】
プロセッサー４１は、エッジサーバー４０の動作に必要な演算及び制御などの処理を行うコンピューターの中枢部分に相当する。プロセッサー４１は、ＲＯＭ４２又は補助記憶デバイス４４などに記憶されたシステムソフトウェア、アプリケーションソフトウェア又はファームウェアなどのプログラムに基づいて、エッジサーバー４０の各種の機能を実現するべく各部を制御する。なお、当該プログラムの一部又は全部は、プロセッサー４１の回路内に組み込まれていても良い。プロセッサー４１は、例えば、ＣＰＵ、ＭＰＵ、ＳｏＣ、ＤＳＰ、ＧＰＵ、ＡＳＩＣ、ＰＬＤ又はＦＰＧＡなどである。あるいは、プロセッサー４１は、これらのうちの複数を組み合わせたものである。
【００７３】
ＲＯＭ４２は、プロセッサー４１を中枢とするコンピューターの主記憶装置に相当する。ＲＯＭ４２は、専らデータの読み出しに用いられる不揮発性メモリである。ＲＯＭ４２は、上記のプログラムを記憶する。また、ＲＯＭ４２は、プロセッサー４１が各種の処理を行う上で使用するデータ又は各種の設定値などを記憶する。
【００７４】
ＲＡＭ４３は、プロセッサー４１を中枢とするコンピューターの主記憶装置に相当する。ＲＡＭ４３は、データの読み書きに用いられるメモリである。ＲＡＭ４３は、プロセッサー４１が各種の処理を行う上で一時的に使用するデータを記憶しておく、いわゆるワークエリアなどとして利用される。
【００７５】
補助記憶デバイス４４は、プロセッサー４１を中枢とするコンピューターの補助記憶装置に相当する。補助記憶デバイス４４は、例えばＥＥＰＲＯＭ、ＨＤＤ又はＳＳＤなどである。補助記憶デバイス４４は、上記のプログラムを記憶する場合もある。また、補助記憶デバイス４４は、プロセッサー４１が各種の処理を行う上で使用するデータ、プロセッサー４１での処理によって生成されたデータ又は各種の設定値などを保存する。
【００７６】
ＲＯＭ４２又は補助記憶デバイス４４に記憶されるプログラムは、後述する処理を実行するためのプログラムを含む。一例として、エッジサーバー４０は、当該プログラムがＲＯＭ４２又は補助記憶デバイス４４に記憶された状態でエッジサーバー４０の管理者などへと譲渡される。しかしながら、エッジサーバー４０は、当該プログラムがＲＯＭ４２又は補助記憶デバイス４４に記憶されない状態で当該管理者などに譲渡されても良い。また、エッジサーバー４０は、当該プログラムとは別のプログラムがＲＯＭ４２又は補助記憶デバイス４４に記憶された状態で当該管理者などに譲渡されても良い。そして、後述する処理を実行するためのプログラムが別途に当該管理者などへと譲渡され、当該管理者又はサービスマンなどによる操作の下にＲＯＭ４２又は補助記憶デバイス４４へと書き込まれても良い。このときのプログラムの譲渡は、例えば、磁気ディスク、光磁気ディスク、光ディスク又は半導体メモリなどのようなリムーバブルな記憶媒体に記録して、あるいはネットワークＮＷ３などを介したダウンロードにより実現できる。
【００７７】
第１の通信Ｉ／Ｆ４５は、エッジサーバー４０がネットワークＮＷ１などを介して通信するためのインターフェースである。
第２の通信Ｉ／Ｆ４６は、エッジサーバー４０がネットワークＮＷ３などを介して通信するためのインターフェースである。
【００７８】
ＲＴＣ４７は、時計又は時計機能を内蔵する回路などである。
バス４８は、コントロールバス、アドレスバス及びデータバスなどを含み、エッジサーバー４０の各部で授受される信号を伝送する。
【００７９】
以下、第３実施形態に係る制御システム１ｂの動作を図３、図１０及び図１１などに基づいて説明する。なお、以下の動作説明における処理の内容は一例であって、同様な結果を得ることが可能な様々な処理を適宜に利用できる。図１０は、エッジサーバー４０のプロセッサー４１による処理のフローチャートである。プロセッサー４１は、例えば、ＲＯＭ４２又は補助記憶デバイス４４などに記憶されたプログラムに基づいてこの処理を実行する。図１１は、クラウドサーバー１０のプロセッサー１１による処理のフローチャートである。プロセッサー１１は、例えば、ＲＯＭ１２又は補助記憶デバイス１４などに記憶されたプログラムに基づいてこの処理を実行する。なお、エッジサーバー４０のプロセッサー４１は、図１０に示す処理を開始するとき、変数ｘ１及び変数ｎ１を、ＲＡＭ４３などに割り当てる。ただし、変数ｘ１及び変数ｎ１の初期値は０とする。
【００８０】
第３実施形態の制御装置２０は、第１実施形態の図３に示す処理と同様の処理をする。ただし、第３実施形態では、制御装置２０のプロセッサー２１は、図３のステップＳ１４において、クラウドサーバー１０に代えてエッジサーバー４０に送信するように第１の通信Ｉ／Ｆ２５に対して指示する。この指示を受けて第１の通信Ｉ／Ｆ２５は、当該データをエッジサーバー４０に送信する。なお、ここで送信するエッジサーバー４０は、制御装置２０が設置されている領域と同一の領域に設置されているエッジサーバー４０である。送信された当該データは、エッジサーバー４０の第２の通信Ｉ／Ｆ４６によって受信される。
【００８１】
一方、図１０のステップＳ６１においてエッジサーバー４０のプロセッサー４１は、第２の通信Ｉ／Ｆ４６によってデータが受信されるのを待ち受ける。プロセッサー４１は、データが受信されたならば、ステップＳ６１においてＹｅｓと判定してステップＳ６２へと進む。
【００８２】
ステップＳ６２においてプロセッサー４１は、ステップＳ６１において受信されたデータを一時的に記憶するべく、当該データをＲＡＭ４３などに記憶させる。ここでＲＡＭ４３に記憶されるデータを、以下「第２の一時データ」という。
第２の一時データは、データベース１００に未格納のデータである。したがって、ＲＡＭ４３は、データベース１００に未格納の受信データを一時的に記憶する第１の記憶部の一例である。また、ＲＡＭ４３は、記憶装置の一例である。したがって、プロセッサー４１は、ステップＳ６２の処理を行うことで、データベース１００に未格納の受信データを一時的に記憶装置に記憶させる記憶制御部の一例として機能する。
【００８３】
ステップＳ６３においてプロセッサー４１は、ステップＳ６１において受信されたデータのデータ量を変数ｘ１の値に加える。
【００８４】
ステップＳ６４においてプロセッサー４１は、変数ｎ１の値を１増加させる。プロセッサー４１は、ステップＳ６４の処理の後、ステップＳ６１へと戻る。
【００８５】
また、プロセッサー４１は、ステップＳ６１及びステップＳ６２の処理と並行又は並列で、ステップＳ７１〜ステップＳ７６の処理を実行する。
ステップＳ７１においてプロセッサー４１は、ＲＡＭ４３に第２の一時データが記憶されているか否かを判定する。プロセッサー４１は、ＲＡＭ４３に第２の一時データが記憶されていないならば、ステップＳ７１においてＮｏと判定してステップＳ７１を繰り返す。対して、プロセッサー４１は、ＲＡＭ４３に第２の一時データが記憶されているならば、ステップＳ７１においてＹｅｓと判定してステップＳ７２へと進む。
【００８６】
ステップＳ７２においてプロセッサー４１は、時間の計測を開始する。例えば、プロセッサー４１は、現在時刻をＲＡＭ４３などに記憶しておく。
【００８７】
ステップＳ７３においてプロセッサー４１は、集約条件を満たすのを待ち受ける。集約条件は、例えば、図４のステップＳ３３と同様の条件である。ただし、プロセッサー４１は、ステップＳ３３と異なり、ＲＡＭ４３に記憶されている第２の一時データに対して集約条件を満たしているか判定する。また、プロセッサー４１は、（ｐ１）において、例えば、現在時刻から、ＲＡＭ４３に記憶しておいた時刻を引くことで経過時間ｔ１を求める。
プロセッサー４１は、集約条件を満たしていると判定するならば、図１０のステップＳ７３においてＹｅｓと判定してステップＳ７４へと進む。
以上より、プロセッサー４１は、ステップＳ７３の処理を行うことで、データが条件を満たすことを判定する判定部として機能する。
【００８８】
ステップＳ７４においてプロセッサー４１は、ＲＡＭ４３に記憶されている第２の一時データを全て読み出す。そして、プロセッサー４１は、読み出したデータを集約する。なお、プロセッサー４１は、ここで読み出した第２の一時データをＲＡＭ４３から削除する。
【００８９】
ステップＳ７５においてプロセッサー４１は、ステップＳ７４において集約したデータをクラウドサーバー１０に送信するように第１の通信Ｉ／Ｆ４５に対して指示する。この指示を受けて第１の通信Ｉ／Ｆ４５は、当該データをクラウドサーバー１０に送信する。送信された当該データは、クラウドサーバー１０の通信Ｉ／Ｆ１５によって受信される。
以上より、プロセッサー４１は、第１の通信Ｉ／Ｆ４５と協働して、ステップＳ７５の処理を行うことで、データを送信する送信部として機能する。また、第１の通信Ｉ／Ｆ４５は、通信装置の一例である。したがって、プロセッサー４１は、ステップＳ７５の処理を行うことで、通信装置を制御する通信制御部として機能する。
【００９０】
一方、図１１のステップＳ８１においてクラウドサーバー１０のプロセッサー１１は、通信Ｉ／Ｆ１５によってデータが受信されるのを待ち受けている。プロセッサー１１は、データが受信されたならば、ステップＳ８１においてＹｅｓと判定してステップＳ８２へと進む。
【００９１】
ステップＳ８２においてプロセッサー１１は、ステップＳ８１において受信されたデータをデータベース１００に格納する。プロセッサー１１は、ステップＳ８２の処理の後、ステップＳ８１へと戻る。
【００９２】
また、図１０のステップＳ７６において、プロセッサー４１は、時間の計測を停止する。プロセッサー４１は、ステップＳ７６の処理の後、ステップＳ７１へと戻る。
【００９３】
第３実施形態の制御システム１ｂは、第１実施形態と同様の効果が得られる。
また、第３実施形態の制御システム１ｂによれば、エッジサーバー４０は、クラウドサーバー１０に対して、集約したデータを送信する。これにより、エッジサーバー４０からクラウドサーバー１０へのデータの送信回数が減る。したがって、第３実施形態の制御システム１ｂは、ネットワークＮＷ１の負荷を軽減することができる。
【００９４】
第１実施形態〜第３実施形態は以下のような変形も可能である。
第１実施形態〜第３実施形態では、センサー３１から送信されるデータをデータベースに格納する場合について述べた。しかしながら、データベースに格納するデータは、センサーが出力するデータに限らない。例えば、販売履歴、購買履歴又は行動履歴などに関するデータなどであっても良い。
【００９５】
第２実施形態の制御システム１は、データＩＤごとに集約条件を満たしているか判定し、データＩＤごとにデータベースに格納した。しかしながら、制御システム１は、データＩＤに代えて、その他のＩＤを用いても良い。
【００９６】
第２実施形態において、制御装置２０とクラウドサーバー１０間の通信にＭＱＴＴ（Message Queuing Telemetry Transport）を用いても良い。そして、データＩＤなどをＭＱＴＴのトピックとして設定し、クラウドサーバー１０で受信するトピックを指定することで、特定のデータのみを受信するようにしても良い。
【００９７】
第３実施形態のエッジサーバー４０は、第２実施形態のクラウドサーバー１０と同様に、データＩＤごとに集約条件を満たしているか判定しても良い。そして、エッジサーバー４０は、集約条件を満たしたデータＩＤに関連付けられているデータをクラウドサーバー１０に送信する。
【００９８】
第１実施形態及び第２実施形態のクラウドサーバー１０は、データを受信する都度データベース１００に当該データを格納しても良い。そして、クラウドサーバー１０は、データベース１００への格納が間に合わなくなりそう、又は間に合わなくなったと判定した場合に上記の第１実施形態又は第２実施形態と同様の処理を行う。
また、第３実施形態のエッジサーバー４０は、データを受信する都度クラウドサーバー１０に当該データを送信しても良い。そして、エッジサーバー４０は、クラウドサーバー１０がデータベース１００へのデーの格納が間に合わなくなりそう、又は間に合わなくなったと判定した場合に上記の第３実施形態と同様の処理を行う。
【００９９】
第１実施形態〜第３実施形態では、クラウドサーバー１０のプロセッサー１１又はエッジサーバー４０のプロセッサー４１は、ＲＡＭ１３又はＲＡＭ４３に第１の一時データ又は第２の一時データが記憶されていることを確認した場合に時間の計測を開始した。しかしながら、プロセッサー１１又はプロセッサー４１は、データを受信したことに応じて時間の計測を開始しても良い。例えば、プロセッサー１１又はプロセッサー４１は、ステップＳ２１又はステップＳ６１の後、時間計測中でない場合に時間の計測を開始する。
【０１００】
第１実施形態では、プロセッサー１１は、ステップＳ３５において第１の一時データを全て読み出す。しかしながら、プロセッサー１１は、ＲＡＭ１３に記憶されている第１の一時データのうち一定量又は一定数を読み出しても良い。ただし、プロセッサー１１は、ステップＳ３４において変数ｘ１及び変数ｎ１の値をリセットすることに代えて、ここで読み出すデータ量及びデータ数分だけ変数ｘ１及び変数ｎ１の値を減らす。第２実施形態でも同様に、プロセッサー１１は、ＲＡＭ１３に記憶されている第１の一時データのうち一定量又は一定数を読み出しても良い。また、第３実施形態でも同様に、プロセッサー４１は、ＲＡＭ４３に記憶されている第２の一時データのうちの一定量又は一定数を読み出しても良い。
【０１０１】
データベース１００は、クラウドサーバー１０以外の装置に記憶されていても良い。この場合、クラウドサーバー１０は、当該装置にコマンド及びデータを送信するなどして、データベース１００にデータを格納する。
【０１０２】
プロセッサー１１、プロセッサー２１又はプロセッサー４１は、上記実施形態においてプログラムによって実現する処理の一部又は全部を、回路のハードウェア構成によって実現しても良い。
【０１０３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１０４】
１……制御システム、１０……クラウドサーバー、１１，２１，４１……プロセッサー、１２，２２，４２……ＲＯＭ、１３，２３，４３……ＲＡＭ、１４，２４，４４……補助記憶デバイス、１５……通信Ｉ／Ｆ、１６，４７……ＲＴＣ、１７，２７，４８……バス、２０……制御装置、２５，４５……第１の通信Ｉ／Ｆ、２６，４６……第２の通信Ｉ／Ｆ、３０……各種装置、３１……センサー、３２……アクチュエーター、３３……報知装置、４０……エッジサーバー、１００……データベース
【図１】
2020021361.tif 000003
【図２】
2020021361.tif 000004
【図３】
2020021361.tif 000005
【図４】
2020021361.tif 000006
【図５】
2020021361.tif 000007
【図６】
2020021361.tif 000008
【図７】
2020021361.tif 000009
【図８】
2020021361.tif 000010
【図９】
2020021361.tif 000011
【図１０】
2020021361.tif 000012
【図１１】
2020021361.tif 000013