次に、本発明における実施形態について図面を参照して説明する。
各図面は、本発明の実施形態を説明するためのものである。ただし、本発明は、各図面の記載に限られるわけではない。また、各図面の同様の構成には、同じ番号を付し、その繰り返しの説明を、省略する場合がある。また、以下の説明に用いる図面において、本発明の説明に関係しない部分の構成については、記載を省略し、図示しない場合もある。
<第1の実施形態>
以下、図面を参照して、第1の実施形態について説明する。
なお、以下の説明において、センサデバイス及びセンサデータの一例として、カメラ、及び、カメラが撮影した映像データを用いる。
ただし、カメラ及び映像データは、第1の実施形態が用いるセンサデバイス及びセンサデータの一例である。第1の実施形態にかかるセンサデバイス及びセンサデータは、カメラ及び映像データに限られない。例えば、第1の実施形態は、センサデバイスとして、人感センサ、温度センサ、圧力センサ、流量計、又は、振動センサを用いてもよい。この場合、第1の実施形態は、センサデータとして、人の有無、温度、圧力、流量、又は、振動のデータを用いればよい。
さらに、以下の説明において、センサデバイスとサーバとの間におけるデータを中継する装置(データ中継装置)として、IoTゲートウェイを用いて説明する。
ただし、IoTゲートウェイは、第1の実施形態にかかるデータ中継装置の一例である。第1の実施形態にかかるデータ中継装置は、IoTゲートウェイに限られない。例えば、データ中継装置は、IoTゲートウェイとサーバとを仲介するネットワークを構成する装置(例えば、ルータ又はスイッチ)でもよい。あるいは、第1の実施形態にかかるデータ中継装置は、IoTゲートウェイと接続された装置(例えば、エッジ装置)でもよい。
なお、以下の説明に用いる「ゲートウェイ情報」とは、IoTゲートウェイが、他のIoTゲートウェイにアクセス(例えば、他のIoTゲートウェイとデータを送信及び受信)する際に参照する情報である。さらに、ゲートウェイ情報は、サーバがIoTゲートウェイにアクセスする際に参照する情報でもある。
例えば、ゲートウェイ情報は、後ほど説明するネットワーク150及びゲートウェイ間通信路250における各IoTゲートウェイのアドレスである。ただし、ゲートウェイ情報は、上記に限定されない。例えば、ゲートウェイ情報は、IoTゲートウェイの名称、又は、位置を示す情報(例えば、Uniform Resource Locator(URL))でもよい。
なお、ゲートウェイ情報は、1つの情報ではなく、複数の情報を含んでいてもよい。さらに、ゲートウェイ情報は、他の情報を含んでいてもよい。例えば、ゲートウェイ情報は、CPU及びメモリなどのIoTゲートウェイのハードウェアに関する情報、並びに、カーネルなどのIoTゲートウェイのソフトウェアに関する情報を含んでいてもよい。
なお、IoTゲートウェイは、データ中継装置の一例である。そのため、ゲートウェイ情報は、「データ中継装置情報」の一例である。
[構成の説明]
まず、図面を参照して、第1の実施形態にかかるIoTシステム10の構成について説明する。
図1は、第1の実施形態にかかるIoTシステム10の構成の一例を示すブロック図である。
IoTシステム10は、サーバ101と、IoTゲートウェイ201、301、及び401と、ネットワーク150と、ゲートウェイ間通信路250とを含む。
そして、IoTシステム10は、所定の外部システム801に接続されている。なお、外部システム801は、IoTシステム10にデータを要求する。そして、外部システム801は、IoTシステム10からデータを受信する。
さらに、IoTシステム10は、カメラ501、601、及び701に接続されている。
カメラ501、601、及び701は、それぞれ、IoTゲートウェイ201、301、及び401に接続されている。そして、カメラ501、601、及び701は、それぞれ、撮影したデータ(図1では、映像データ501A、601A、及び701A)を、IoTゲートウェイ201、301、及び401に送信する。
なお、カメラ501ないし701は、センサデバイスの一例である。また、映像データ501Aないし701Aは、センサデータの一例である。
サーバ101は、ネットワーク150を介して、IoTゲートウェイ201ないし401と接続されている。
なお、IoTシステム10は、ネットワーク150として、任意の通信路を用いてもよい。例えば、ネットワーク150は、所定の施設に設置された専用の通信網でもよく、汎用の通信網(例えば、インターネット)でもよい。
さらに、ネットワーク150は、複数のネットワークを含んでもよい。この場合、サーバ101は、IoTゲートウェイ201ないし401のそれぞれに接続するネットワークとして、同じ性能のネットワーク150を用いてもよい。あるいは、サーバ101は、IoTゲートウェイ201ないし401に対して、それぞれ、異なる性能のネットワーク150(例えば、通信速度が異なるネットワーク)を用いてもよい。つまり、サーバ101と、IoTゲートウェイ201ないし401それぞれとの接続性能は、異なっていてもよい。
そして、サーバ101は、外部システム801からデータの要求を受けると、いずれかのIoTゲートウェイからデータを取得して、外部システム801に送信する。ただし、サーバ101は、後ほど詳細に説明するように、IoTゲートウェイとの送信及び受信に関連する情報に基づいて、データを依頼するIoTゲートウェイを選定する。例えば、サーバ101は、ゲートウェイ情報の送信及び受信に関連する情報を参照して、データの転送時間が最も短いIoTゲートウェイを選定する。
ゲートウェイ間通信路250は、IoTゲートウェイ201ないし401を接続する。
なお、IoTシステム10は、ゲートウェイ間通信路250として、任意の通信路を用いてもよい。例えば、IoTシステム10は、ゲートウェイ間通信路250として、所定の専用の通信路を用いてもよい。あるいは、IoTシステム10は、ゲートウェイ間通信路250として、ネットワーク150を用いてもよい。ただし、図示していないが、ネットワーク150は、サーバ101及びIoTゲートウェイ201ないし401以外の装置が接続されている場合もある。そのため、ゲートウェイ間通信路250は、IoTゲートウェイ201ないし401のための専用の通信路であることが望ましい。
IoTゲートウェイ201は、カメラ501に接続されている。IoTゲートウェイ301は、カメラ601に接続されている。IoTゲートウェイ401は、カメラ701に接続されている。
そして、IoTゲートウェイ201ないし401は、それぞれ、カメラ501ないし701から映像データ501Aないし701Aを受信する。
さらに、IoTゲートウェイ201ないし401は、カメラ501ないし701から映像データ501Aないし701Aを受信すると、映像データ501Aないし701Aを分割する。そして、IoTゲートウェイ201ないし401は、分割したデータ(以下「分割データ」と呼ぶ)の一部を保存し、その他の分割データを他のIoTゲートウェイに転送する。
分割データを転送されたIoTゲートウェイ201ないし401は、分割データを保存する。
このように、IoTゲートウェイ201ないし401は、映像データを分割して分散保存する。
例えば、図1において、IoTゲートウェイ201は、カメラ501から映像データ501Aを受信すると、映像データ501Aを3つの分割データ(分割データ501A2、501A3及び501A4)に分割する。そして、IoTゲートウェイ201は、1つの分割データ(分割データ501A2)を保存する。さらに、IoTゲートウェイ201は、ゲートウェイ間通信路250を介して、残りの分割データ(分割データ501A3及び501A4)を、他のIoTゲートウェイ(IoTゲートウェイ301及び401)に転送する。
他のIoTゲートウェイ(IoTゲートウェイ301及び401)は、受信した分割データ(分割データ501A3及び501A4)を保存する。
IoTゲートウェイ301は、カメラ601から受信した映像データ601Aを三分割する。そして、IoTゲートウェイ301は、3つの分割データのいずれか1つの分割データ(分割データ601A2)を保存する。さらに、IoTゲートウェイ301は、残りの分割データ(分割データ601A3及び601A4)を、他のIoTゲートウェイ(IoTゲートウェイ401及び201)に転送する。
IoTゲートウェイ401及び201は、受信した分割データ(分割データ601A3及び601A4)を保存する。
IoTゲートウェイ401は、カメラ701から受信した映像データ701Aを三分割する。そして、IoTゲートウェイ301は、3つの分割データのいずれか1つの分割データ(分割データ701A2)を保存する。さらに、IoTゲートウェイ401は、残りの分割データ(分割データ701A3及び701A4)を、他のIoTゲートウェイ(IoTゲートウェイ201及び301)に転送する。
IoTゲートウェイ201及び301は、受信した分割データ(分割データ701A3及び701A4)を保存する。
さらに、IoTゲートウェイ201ないし401は、サーバ101から映像データの要求を受信すると、分散保存されている分割データを集めて元の映像データを合成する。そして、IoTゲートウェイ201ないし401は、合成した映像データをサーバ101に送信する。
例えば、IoTゲートウェイ401は、サーバ101から映像データ501Aの要求を受信すると、他のIoTゲートウェイ(IoTゲートウェイ201及び301)から、保存していない分割データ(分割データ501A2及び501A3)を取得する。そして、IoTゲートウェイ401は、取得した分割データ(分割データ501A2及び501A3)と、保存している分割データ(分割データ501A4)とを合成して映像データ501Aを生成する。そして、IoTゲートウェイ401は、生成した映像データ501Aをサーバ101に送信する。
なお、IoTゲートウェイ201ないし401が、映像データを分散保存する理由は、次のとおりである。
IoTゲートウェイ201ないし401は、それぞれ、サーバ101との通信環境が異なる。そこで、後ほど詳細に説明するように、サーバ101は、IoTゲートウェイとの送信及び受信に関連する情報に基づいて、適切なIoTゲートウェイに映像データの送信を依頼する。例えば、サーバ101は、ゲートウェイ情報の送信及び受信に関連する情報を参照して、データの転送時間が最も短いIoTゲートウェイに映像データの送信を依頼する。
IoTゲートウェイ201ないし401は、映像データを分割して分散保存することで、少なくとも映像データの一部を、サーバ101からの映像データの送信を依頼されるIoTゲートウェイに転送しておくことができる。そのため、IoTゲートウェイ201ないし401は、サーバ101から映像データの送信を依頼されたときにおけるデータの転送量を削減できる。その結果、IoTゲートウェイ201ないし401は、サーバ101からの映像データを要求された場合に、映像データの送信時間を改善できる。
映像データを受信したサーバ101は、外部システム801に映像データを送信する。
IoTゲートウェイ201及び301も、同様に動作する。
なお、IoTシステム10が含む装置の数は、図1に限定されない。例えば、IoTシステム10は、複数のサーバ101を含んでもよい。あるいは、IoTシステム10は、2つのIoTゲートウェイ、又は、4つ以上のIoTゲートウェイを含んでいてもよい。
さらに、少なくとも一部のIoTゲートウェイは、複数のセンサデバイスに接続されていてもよい。
次に、図面を参照して、サーバ101、及び、IoTゲートウェイ201ないし401の構成を説明する。なお、IoTゲートウェイ201ないし401は同じ構成を含む。そのため、IoTゲートウェイ201ないし401の構成の説明として、IoTゲートウェイ201の構成を説明する。また、以下の説明において、IoTゲートウェイ301及び401の構成の符号として、IoTゲートウェイ201の構成の符号と同じ符号を用いる。
次に、図面を参照して、サーバ101の構成について説明する。
図2は、第1の実施形態にかかるサーバ101の構成の一例を示すブロック図である。
サーバ101は、ゲートウェイ送受信部111と、ゲートウェイ情報展開部113と、参照要求受信部115と、参照要求処理部116と、データ取得部117と、データ要求部119と、データ受信部120とを含む。サーバ101は、さらに、ゲートウェイ情報格納部112と、加工データ格納部114と、データ格納部118とを含む。
ゲートウェイ送受信部111は、IoTゲートウェイ201ないし401とのデータの送信及び受信を仲介する。
さらに、ゲートウェイ送受信部111は、IoTゲートウェイ201ないし401から、ゲートウェイ情報と、IoTゲートウェイ201ないし401がゲートウェイ情報を送信した時間(送信時間)とを受信する。そして、ゲートウェイ送受信部111は、ゲートウェイ情報と、送信時間と、ゲートウェイ情報を受信した時間(受信時間)とを関連付けてゲートウェイ情報格納部112に保存する。
なお、送信時間及び受信時間は、ゲートウェイ情報の送信及び受信に関連する情報の一例である。送信及び受信に関連する情報は、他の情報を含んでいてもよい。例えば、送信及び受信に関連する情報は、送信及び受信に用いられた経路に関連する情報を含んでいてもよい。
ゲートウェイ情報格納部112は、ゲートウェイ情報と、送信時間と、受信時間とを関連付けて保存する。
なお、ゲートウェイ情報は、データ中継装置情報の一例である。そのため、ゲートウェイ情報格納部112は、データ中継装置情報格納部の一例である。ただし、IoTシステム10は、ゲートウェイ情報を保存する構成を複数含む。そこで、他の構成と区別する場合、ゲートウェイ情報格納部112を、「第2のデータ中継装置情報格納部」と呼ぶ。
ゲートウェイ情報展開部113は、IoTゲートウェイ201ないし401からゲートウェイ情報を受信した場合、ゲートウェイ送受信部111を介して、IoTゲートウェイ201ないし401に、他のIoTゲートウェイのゲートウェイ情報を展開する。例えば、IoTゲートウェイ201からゲートウェイ情報211Aを受信した場合、ゲートウェイ情報展開部113は、IoTゲートウェイ201に、IoTゲートウェイ301及び401のゲートウェイ情報311A及び411Aを展開する。
なお、ゲートウェイ情報展開部113は、他のIoTゲートウェイのゲートウェイ情報の展開において、ゲートウェイ情報のIoTゲートウェイへの展開に掛かる時間を計測してもよい。この場合、ゲートウェイ情報展開部113は、展開の時間を、ゲートウェイ情報の送信及び受信に関する情報に追加してもよい。
なお、ゲートウェイ情報は、データ中継装置情報の一例である。そのため、ゲートウェイ情報展開部113は、「データ中継装置情報展開部」の一例である。
加工データ格納部114は、ゲートウェイ送受信部111がIoTゲートウェイから加工データを受信した場合、受信した加工データを保存する。
参照要求受信部115は、外部システム801からデータの参照の要求を受信すると、要求されたデータに対応する参照要求を、参照要求処理部116に送信する。さらに、参照要求受信部115は、参照要求処理部116からデータを受信すると、受信したデータを外部システム801に送信する。
参照要求処理部116は、参照要求受信部115から参照要求を受信すると、データ取得部117に参照要求の対象のデータの取得の指示を送信する。そして、参照要求処理部116は、データ取得部117からデータを受信すると、受信したデータを参照要求受信部115に送信する。
データ取得部117は、データの取得の指示を受信すると、指示されたデータがデータ格納部118に保存されているか否かを確認する。
データが保存されている場合、データ取得部117は、保存されているデータを参照要求処理部116に送信する。
データが保存されていない場合、データ取得部117は、データ要求部119に、データの取得依頼を送信する。そして、データ取得部117は、データ受信部120からデータを受信すると、受信したデータを参照要求処理部116に送信する。
データ格納部118は、データ受信部120がIoTゲートウェイ201ないし401から受信したデータを保存する。
データ要求部119は、データ取得部117からデータの取得依頼を受信すると、ゲートウェイ情報格納部112が保存している送信時間及び受信時間を用いて、送信要求を送信するIoTゲートウェイを選定する。
なお、送信時間及び受信時間は、ゲートウェイ情報の送信及び受信に関連する情報の一例である。つまり、データ要求部119は、ゲートウェイ情報の送信及び受信に関連する情報を用いて、送信要求を送信するIoTゲートウェイを選定する。
なお、IoTゲートウェイを選定する動作については、後ほど詳細に説明する。
そして、データ要求部119は、ゲートウェイ送受信部111を介して、データ取得部117から依頼されたデータの送信要求を、選定したIoTゲートウェイに送信する。データ要求部119は、選定したIoTゲートウェイに送信要求を送信するとき、ゲートウェイ情報格納部112に保存されているゲートウェイ情報を参照する。
データ受信部120は、ゲートウェイ送受信部111を介して、IoTゲートウェイ201ないし401からデータを受信すると、データ取得部117に送信する。さらに、データ受信部120は、受信したデータをデータ格納部118に保存する。
次に、図面を参照して、IoTゲートウェイ201の構成について説明する。
図3は、第1の実施形態にかかるIoTゲートウェイ201の構成の一例を示すブロック図である。
なお、IoTシステム10において、IoTゲートウェイ201が、カメラ501から受信した映像データ501Aの送信に加え、映像データ501Aを加工したデータを、サーバ101の送信する場合もある。そこで、以下の説明では、IoTゲートウェイ201の動作として、カメラ501から受信した映像データ501Aを加工する動作を含めて説明する。
IoTゲートウェイ201は、自ゲートウェイ情報格納部211と、サーバ送受信部212と、他ゲートウェイ情報格納部213とを含む。さらに、IoTゲートウェイ201は、センサ受信部214と、データ分割部216と、分割データ転送部217と、ゲートウェイ間送受信部218と、分割データ受信部219と、分割データ格納部220とを含む。IoTゲートウェイ201は、さらに、データ要求処理部221と、分割データ要求送信部222と、分割データ要求受信部223とを含む。さらに、IoTゲートウェイ201は、データ加工部215を含む。
自ゲートウェイ情報格納部211は、自IoTゲートウェイ(今の場合、IoTゲートウェイ201)のゲートウェイ情報(ゲートウェイ情報211A)を保存する。
なお、ゲートウェイ情報は、データ中継装置情報の一例である。そのため、自ゲートウェイ情報格納部211は、データ中継装置情報格納部の一例である。ただし、IoTシステム10は、ゲートウェイ情報を保存する構成を複数含む。そこで、他の構成と区別する場合、自ゲートウェイ情報格納部211を、「第3のデータ中継装置情報格納部」と呼ぶ。
なお、自ゲートウェイ情報格納部211がゲートウェイ情報を保存するタイミングは、IoTゲートウェイ201が他のIoTゲートウェイ(IoTゲートウェイ301及び401)及びサーバ101と通信する前であれば、任意である。例えば、自ゲートウェイ情報格納部211は、IoTゲートウェイ201の起動時の動作において、ゲートウェイ情報を保存すればよい。
サーバ送受信部212は、サーバ101と、IoTゲートウェイ201の各構成とのデータの送信及び受信を仲介する。より詳細には、サーバ送受信部212は、サーバ101から所定のデータ(例えば、データの送信要求)を受信し、サーバ101に所定のデータ(例えば、センサデータ)を送信する。
さらに、サーバ送受信部212は、サーバ101から他のIoTゲートウェイのゲートウェイ情報を受信すると、受信したゲートウェイ情報を他ゲートウェイ情報格納部213に保存する。
他ゲートウェイ情報格納部213は、他のIoTゲートウェイ(例えば、IoTゲートウェイ301及び401)のゲートウェイ情報(例えば、ゲートウェイ情報311A及び411A)を保存する。
なお、ゲートウェイ情報は、データ中継装置情報の一例である。そのため、他ゲートウェイ情報格納部213は、データ中継装置情報格納部の一例である。ただし、IoTシステム10は、ゲートウェイ情報を保存する構成を複数含む。そこで、他の構成と区別する場合、他ゲートウェイ情報格納部213を、「第1のデータ中継装置情報格納部」と呼ぶ。
センサ受信部214は、センサデバイス(例えば、カメラ501)からセンサデータ(例えば、映像データ501A)を受信する。
なお、映像データ501Aは、センサデータの一例である。そのため、センサ受信部214は、「センサデータ受信部」の一例である。
データ加工部215は、カメラ501から受信した映像データ501Aを加工したデータ(以下、「加工データ」と呼ぶ)を生成する。例えば、データ加工部215は、加工データとして、映像データ501Aに人物が含まれるか否かを示すデータ(以下、「人物有無データ501B」と呼ぶ)を生成する。
そして、データ加工部215は、サーバ送受信部212を介して、サーバ101に加工データを送信する。
データ分割部216は、センサ受信部214が受信した映像データ501Aを、IoTシステム10に含まれるIoTゲートウェイの数に分割する。
IoTゲートウェイの数は、予め、データ分割部216に保存されていればよい。例えば、IoTシステムの管理者が、IoTゲートウェイの数を設定してもよい。
なお、他ゲートウェイ情報格納部213は、他のIoTゲートウェイの数のゲートウェイ情報を保存している。つまり、IoTシステム10に含まれるIoTゲートウェイの数は、「他ゲートウェイ情報格納部213が保存するゲートウェイ情報の数+1」となる。そのため、データ分割部216は、センサデータを、「他ゲートウェイ情報格納部213が保存するゲートウェイ情報の数+1」の数に分割するように動作してもよい。
なお、データ分割部216は、同じサイズの分割データに、映像データを分割してもよく、少なくとも一部の分割データのサイズが異なるように、映像データを分割してもよい。
データ分割部216は、分割したデータのいずれか1つを、分割データ格納部220に保存する分割データとして選択する。なお、データ分割部216は、予め設定されている規則(例えば、センサデータの最初の部分を選択、又は、乱数を用いた選択)に沿って、保存する分割データを選択する。
そして、データ分割部216は、選択した分割データ(例えば、分割データ401A2)を、分割データ格納部220に保存する。
ゲートウェイ間送受信部218は、他のIoTゲートウェイ(例えば、IoTゲートウェイ301及び401)とのデータの送信及び受信を仲介する。
分割データ転送部217は、他ゲートウェイ情報格納部213が保存するゲートウェイ情報を用いて、データ分割部216が保存するとして選択した分割データを除いた残りの分割データを、他のIoTゲートウェイそれぞれに、1つずつ転送する。
例えば、分割データ転送部217は、分割データ501A3を、IoTゲートウェイ301に転送する。さらに、分割データ転送部217は、分割データ501A4を、IoTゲートウェイ401に転送する。
なお、分割データ転送部217は、所定の規則(例えば、ラウンドロビン)を用いて、各分割データを転送するIoTゲートウェイを決定する。
分割データ受信部219は、ゲートウェイ間送受信部218を介して、他のIoTゲートウェイから、分割データを受信する。そして、分割データ受信部219は、受信した分割データを分割データ格納部220に保存する。
分割データ格納部220は、データ分割部216が選択した分割データと、分割データ受信部219が受信した分割データとを保存する。
データ要求処理部221は、サーバ送受信部212を介して、サーバ101から、データ(例えば、映像データ501A)の送信要求を受信する。
そして、データ要求処理部221は、他ゲートウェイ情報格納部213に保存されている他のIoTゲートウェイのゲートウェイ情報(例えば、ゲートウェイ情報311A及び411A)を取得する。そして、データ要求処理部221は、分割データ要求送信部222に、他のIoTゲートウェイのゲートウェイ情報と、要求されたデータ(例えば、映像データ501A)の分割データの要求とを送信する。
そして、データ要求処理部221は、分割データ要求送信部222から分割データを受信すると、受信した分割データと、分割データ格納部220が保存する分割データとを合成して、送信要求において要求されたデータを生成する。例えば、データ要求処理部221は、分割データ要求送信部222から受信した分割データ501A3及び501A4と、分割データ格納部220が保存する分割データ501A2とを合成して、映像データ501Aを生成する。
そして、データ要求処理部221は、サーバ送受信部212を介して、生成したデータ(例えば、映像データ501A)をサーバ101に送信する。
分割データ要求送信部222は、データ要求処理部221から、ゲートウェイ情報と、分割データの要求とを受信すると、他のIoTゲートウェイに分割データの送信を要求する分割データ送信要求を生成する。そして、分割データ要求送信部222は、ゲートウェイ間送受信部218を介して、他のIoTゲートウェイに分割データ送信要求を送信する。
例えば、分割データ要求送信部222は、他のIoTゲートウェイ(例えば、IoTゲートウェイ301及び401)に、分割データ(例えば、分割データ501A3及び501A4)の送信要求を送信する。
そして、分割データ要求送信部222は、ゲートウェイ間送受信部218を介して、他のIoTゲートウェイ(例えば、IoTゲートウェイ301及び401)から分割データ(例えば、分割データ501A3及び501A4)を受信する。そして、分割データ要求送信部222は、受信した分割データを、データ要求処理部221に送信する。
分割データ要求受信部223は、ゲートウェイ間送受信部218を介して、他のIoTゲートウェイ(例えば、IoTゲートウェイ301又は401)から分割データ送信要求を受信する。
そして、分割データ要求受信部223は、分割データ格納部220から、要求された分割データを取得する。
そして、分割データ要求受信部223は、ゲートウェイ間送受信部218を介して、取得した分割データを他のIoTゲートウェイ(例えば、IoTゲートウェイ301又は401)に送信する。
[動作の説明]
次に、図面を参照して、IoTシステム10の動作を説明する。
(1)ゲートウェイ情報の配布
図面を参照して、ゲートウェイ情報を配布する動作を説明する。
なお、以下の説明は、一例として、サーバ101とIoTゲートウェイ201との動作を説明する。IoTゲートウェイ301及び401は、以下で説明するIoTゲートウェイ201と同様に動作すればよい。
図4は、IoTシステム10におけるゲートウェイ情報を配布する動作の一例を示すシーケンス図である。
なお、IoTゲートウェイ201は、予め、自ゲートウェイ情報格納部211に、IoTゲートウェイ201のゲートウェイ情報211Aを保存しているとする。例えば、IoTゲートウェイ201は、起動の動作において、自ゲートウェイ情報格納部211に、IoTゲートウェイ201のゲートウェイ情報211Aを保存する。あるいは、IoTシステム10の管理者が、自ゲートウェイ情報格納部211に、ゲートウェイ情報211Aを保存する。
さらに、サーバ101は、他のIoTゲートウェイのゲートウェイ情報(ゲートウェイ情報311A及び411A)を保存済みとする。
IoTゲートウェイ201のサーバ送受信部212は、ゲートウェイ情報211Aと、送信時間(送信タイムスタンプ212A)とを、サーバ101に送信する(S401)。
なお、IoTゲートウェイ201における送信時間の取得元は、任意である。例えば、サーバ送受信部212は、IoTゲートウェイ201に含まれる所定の計時構成から時間を取得してもよい。
サーバ101のゲートウェイ送受信部111は、IoTゲートウェイ201から、送信タイムスタンプ212Aと、ゲートウェイ情報211Aとを受信する。その際、ゲートウェイ送受信部111は、図示しない計時部から、受信時間(受信タイムスタンプ212B)を取得する(S402)。
なお、サーバ101における受信時間の取得元は、任意である。例えば、ゲートウェイ送受信部111は、サーバ101に含まれる所定の計時構成から時間を取得してもよい。
そして、サーバ101のゲートウェイ送受信部111は、これらの情報(ゲートウェイ情報211A、送信タイムスタンプ212A、及び、受信タイムスタンプ212B)を、関連付けて、ゲートウェイ情報格納部112に保存する(S403)。
そして、サーバ101のゲートウェイ情報展開部113は、ゲートウェイ情報格納部112が、ゲートウェイ情報を送信してきたIoTゲートウェイとは異なるIoTゲートウェイのゲートウェイ情報を保存しているか否かを確認する。
保存している場合、ゲートウェイ情報展開部113は、異なるIoTゲートウェイのゲートウェイ情報を、ゲートウェイ送受信部111を介して、IoTゲートウェイに展開する(S404)。例えば、ゲートウェイ情報展開部113は、ゲートウェイ送受信部111を介して、ゲートウェイ情報311A及び411Aを、IoTゲートウェイ201に展開する。
なお、ゲートウェイ情報格納部112が、異なるIoTゲートウェイのゲートウェイ情報を保存していない場合、サーバ101は、S404の動作を省略する。
IoTゲートウェイ201のサーバ送受信部212は、サーバ101からゲートウェイ情報を受信した場合、受信したゲートウェイ情報を他ゲートウェイ情報格納部213に保存する(S405)。例えば、サーバ送受信部212は、IoTゲートウェイ301のゲートウェイ情報311Aと、IoTゲートウェイ401のゲートウェイ情報411Aとを他ゲートウェイ情報格納部213に保存する。
IoTシステム10は、上記の動作を、所定の間隔(例えば、10分又は30分)で、定期的に繰り返す。つまり、IoTゲートウェイ201は、S401及びS405の動作を、所定の時間ごとに繰り返し実行する。サーバ101は、IoTゲートウェイ201の動作に対応して、S402からS404の動作を実行する。
このような動作を用いて、IoTシステム10は、IoTゲートウェイ情報をIoTゲートウェイに配布する。
さらに、この動作の繰り返しに基づいて、IoTシステム10は、IoTゲートウェイが追加された場合でも、そのIoTゲートウェイのゲートウェイ情報を、他のIoTゲートウェイに配布することができる。
なお、IoTゲートウェイは、IoTシステム10から取り外されるときに、サーバ101に取り外しの通知を送信してもよい。この場合、サーバ101は、他のIoTゲートウェイにゲートウェイ情報の送信する際に、取り外されたIoTゲートウェイのゲートウェイ情報の削除を依頼してもよい。
(2)映像データの保存
図面を参照して、映像データを保存する動作を説明する。
なお、以下では、一例として、IoTゲートウェイ201が、カメラ501から映像データ501Aを受信した場合における、映像データ501Aを保存する動作を説明する。そのため、主として、IoTゲートウェイ201の動作を中心に説明する。
IoTゲートウェイ301及び401は、それぞれ、カメラ601及び701から映像データ601A及び701Aを受信した場合、同様に動作すればよい。
なお、以下の説明において、IoTゲートウェイ201は、映像データ501Aを加工する動作を含む。つまり、IoTゲートウェイ201は、映像データ501Aを加工して人物の有無を表す人物有無データ501Bを生成し、生成した人物有無データ501Bをサーバ101に送信する。
ただし、IoTゲートウェイ201は、人物有無データ501Bを生成しなくてもよい。この場合、IoTゲートウェイ201は、データ加工部215を含まなくてもよい。
あるいは、IoTゲートウェイ201は、以下で説明する動作において、人物有無データ501Bをサーバ101に送信しなくてもよい。例えば、IoTゲートウェイ201は、サーバ101から要求に基づいて、人物有無データ501Bを生成及び送信を実行してもよい。
図5は、IoTシステム10における映像データを保存する動作の一例を示すシーケンス図である。
なお、カメラ501は、所定のタイミングにおいて所定の対象物(例えば、人物)を撮影して映像データ501Aを生成し、生成した映像データ501AをIoTゲートウェイ201に送信したものとする。
IoTゲートウェイ201のセンサ受信部214は、カメラ501から映像データ501Aを受信する(S501)。
センサ受信部214は、カメラ501から映像データ501Aを受信すると、受信した映像データ501Aを、データ分割部216に送信する。さらに、センサ受信部214は、受信した映像データ501Aを、データ加工部215に送信する。
IoTゲートウェイ201のデータ加工部215は、映像データ501Aを加工して、映像データ501Aにおける人物の有無を表す人物有無データ501Bを生成する。そして、データ加工部215は、サーバ送受信部212を介して、生成した人物有無データ501Bをサーバ101に送信する(S502)。
サーバ101のゲートウェイ送受信部111は、IoTゲートウェイ201から人物有無データ501Bを受信した場合、受信した人物有無データ501Bを加工データ格納部114に保存する(S503)。
なお、サーバ101における保存した加工データに関する動作は、任意である。例えば、サーバ101は、外部システム801から要求された場合、保存している人物有無データ501Bを外部システム801に送信してもよい。
なお、IoTシステム10が人物有無データ501Bを用いない場合、IoTシステム10は、S502及びS503の動作を含まなくてもよい。
IoTゲートウェイ201のデータ分割部216は、映像データ501Aを受信すると、映像データ501AをIoTシステム10に含まれるIoTゲートウェイの数に分割して、分割データ(分割データ501A2ないし501A4)を生成する(S504)。
なお、データ分割部216が他ゲートウェイ情報格納部213に保存されているゲートウェイ情報の数を用いて分割データを生成する場合、データ分割部216は、次のように動作する。
データ分割部216は、映像データ501Aを受信すると、他ゲートウェイ情報格納部213に保存されている他のIoTゲートウェイのゲートウェイ情報(例えば、ゲートウェイ情報311A及び411A)の数を取得する。そして、データ分割部216は、映像データ501Aを、「取得したゲートウェイ情報の数+1」の数の分割データに分割する。
例えば、他ゲートウェイ情報格納部213がゲートウェイ情報311A及び411Aを保存している場合、データ分割部216は、映像データ501Aを、3つの分割データ(以下、「分割データ501A2、501A3、及び501A4」と呼ぶ)に分割する。
データ分割部216は、分割したデータのいずれか1つの分割データ(以下の説明で、一例として「分割データ501A2」を用いる)を選択し、分割データ格納部220に保存する(S505)。
データ分割部216は、残りの分割データを、分割データ転送部217に送信する。例えば、データ分割部216は、分割データ501A3及び501A4を分割データ転送部217に送信する。
IoTゲートウェイ201の分割データ転送部217は、他ゲートウェイ情報格納部213が保存するゲートウェイ情報を参照して、残りの分割データを、ゲートウェイ間送受信部218を介して、互いに異なる他のIoTゲートウェイに転送する(S506)。
例えば、分割データ転送部217は、他ゲートウェイ情報格納部213が保存するゲートウェイ情報311Aを参照して、ゲートウェイ間送受信部218を介して、分割データ501A3をIoTゲートウェイ301に転送する。さらに、分割データ転送部217は、他ゲートウェイ情報格納部213が保存するゲートウェイ情報411Aを参照して、ゲートウェイ間送受信部218を介して、分割データ501A4をIoTゲートウェイ401に転送する。
他のIoTゲートウェイの分割データ受信部219は、ゲートウェイ間送受信部218を介して、IoTゲートウェイ201から分割データを受信する。例えば、IoTゲートウェイ301の分割データ受信部219は、分割データ501A3を受信する。また、IoTゲートウェイ401の分割データ受信部219は、分割データ501A4を受信する。
そして、分割データ受信部219は、受信した分割データを、分割データ格納部220に保存する(S507)。
このように、IoTゲートウェイ201は、カメラ501から受信した映像データ501Aを三分割する。そして、IoTゲートウェイ201は、三分割した分割データ501A2ないし501A4を、IoTゲートウェイ301及び401とともに、分散保存する。
IoTゲートウェイ301及び401も、IoTゲートウェイ201と同様に、受信した映像データ601A及び701Aを、三分割して、分散保存する。
その結果、IoTシステム10は、受信したすべての映像データ(例えば、映像データ501A、601A及び701A)を、すべてのIoTゲートウェイ(例えば、IoTゲートウェイ201、301及び401)に分散保存する。
分割データは、元のデータをIoTゲートウェイの数に分割したデータである。つまり、分割データは、分割の基となったデータに比べ、かなり容量が少ないデータである。そのため、IoTゲートウェイ201ないし401は、分割データを保存するために、あまり大きな記憶容量を必要としない。
また、各IoTゲートウェイ201ないし401は、それぞれがカメラ501ないし701から受信した映像データ501Aないし701Aを、分割して分散保存する。そのため、IoTゲートウェイ201ないし401は、受信した映像データ501Aないし701Aを保存するための容量としても、少ない容量を用意すればよい。
このように、IoTゲートウェイ201ないし401は、受信した映像データ501Aないし701Aを分割して分散保存するため、記憶容量を、あまり多くする必要がない。
例えば、各IoTゲートウェイが概ね同じ量の映像データを受信する場合、各IoTゲートウェイが保存する分割データの容量は、分割しないで個別に映像データを保存する場合の容量と、概ね同じ容量となる。
なお、IoTゲートウェイ201は、映像データ501Aを、IoTシステム10に含まれるIoTゲートウェイの数より少ない数に分割してもよい。例えば、IoTゲートウェイ201は、次のように動作してもよい。
例えば、IoTゲートウェイ201は、映像データ501Aを、二分割する。そして、IoTゲートウェイ201は、二分割したデータのどちらか1つの分割データを、分割データ格納部220に保存する。そして、IoTゲートウェイ201は、残りのデータをIoTゲートウェイ301又は401に送信する。
この場合、IoTゲートウェイ201は、分割データの転送において、分割してデータの転送に加え、分割したデータを配布したIoTゲートウェイのゲートウェイ情報を送信する。
分割データを受信したIoTゲートウェイは、分割データと、分割データを配布したIoTゲートウェイのゲートウェイ情報とを関連付けて保存する。これらの情報は、次で説明する映像データの参照において用いられる。
なお、IoTゲートウェイ201は、IoTシステム10に含まれるIoTゲートウェイより多い数の分割データを生成してもよい。
ただし、この場合、IoTシステム10における分割データの転送処理の回数が、多くなる。特に、IoTゲートウェイを多く含むIoTシステム10の場合、分割データの転送の負荷が大きくなる。そのため、IoTゲートウェイの数が多い場合、IoTゲートウェイ201は、IoTゲートウェイの数の分割データ、又は、IoTゲートウェイより少ない数の分割データを生成することが望ましい。
(3)映像データの参照
図面を参照して、映像データを参照する動作を説明する。
図6は、IoTシステム10における映像データを参照する動作の一例を示すシーケンス図である。
外部システム801は、映像データ(以下の説明では、一例として、映像データ501Aを用いる)を参照するための要求である参照要求811を、サーバ101に送信する。
サーバ101の参照要求受信部115は、外部システム801から参照要求811を受信する(S601)。
参照要求受信部115は、参照要求811を受信すると、参照要求811を参照要求処理部116に送信する。
参照要求処理部116は、参照要求811を解析して、データ取得部117に、参照要求811の対象となる映像データの取得の指示を送信する。
参照要求処理部116から参照要求811の対象となる映像データの取得の指示を受信すると、データ取得部117は、参照要求811の対象の映像データがデータ格納部118に保存されているか否かを確認する(S602)。
保存されている場合(S602でYes)、データ取得部117は、データ格納部118から映像データを取得して、参照要求処理部116に送信する。そして、IoTシステム10は、S608の動作に進む。
保存されていない場合(S602でNo)、データ取得部117は、データ要求部119に、IoTゲートウェイから映像データを取得するための取得依頼117Aを送信する。
取得依頼117Aを受信すると、データ要求部119は、ゲートウェイ情報格納部112が保存するゲートウェイ情報の送信及び受信に関連する情報を参照して、映像データの取得を依頼するIoTゲートウェイを選定する(S603)。例えば、データ要求部119は、映像データの取得を依頼するIoTゲートウェイとして、ゲートウェイ情報の送信及び受信に関連する情報を参照して、データの転送時間が最も短いIoTゲートウェイを選定する。
データの転送時間が最も短いIoTゲートウェイの選定方法の一例を説明する。
まず、データ要求部119は、ゲートウェイ情報格納部112に保存されている各IoTゲートウェイのゲートウェイ情報の送信時間(送信タイムスタンプ212A)と受信時間(受信タイムスタンプ212B)とを取得する。そして、データ要求部119は、受信タイムスタンプ212Bと送信タイムスタンプ212Aとの時間差を算出する。そして、データ要求部119は、時間差が最も少ないIoTゲートウェイをデータの転送時間が最も短いIoTゲートウェイと決定する。
なお、時間差が最も少ないIoTゲートウェイが複数の場合、データ要求部119は、所定の規則(例えば、ラウンドロビン)に沿ってIoTゲートウェイを選択すればよい。
なお、以下の説明では、一例として、データ要求部119は、IoTゲートウェイ401を選定したとする。
次に、データ要求部119は、ゲートウェイ送受信部111を介して、選定したIoTゲートウェイ401に、取得依頼117Aにおいて依頼された映像データの送信を要求する送信要求119Aを送信する(S604)。
IoTゲートウェイ401のサーバ送受信部212は、送信要求119Aを受信すると、送信要求119Aをデータ要求処理部221に送信する。
IoTゲートウェイ401のデータ要求処理部221は、送信要求119Aを受信すると、他ゲートウェイ情報格納部213から他のIoTゲートウェイのゲートウェイ情報を取得する。例えば、データ要求処理部221は、IoTゲートウェイ201のゲートウェイ情報211Aと、IoTゲートウェイ301のゲートウェイ情報311Aとを取得する。
そして、データ要求処理部221は、取得したゲートウェイ情報と、送信要求119Aにおいて要求された映像データの分割データの要求とを、分割データ要求送信部222に送信する。
IoTゲートウェイ401の分割データ要求送信部222は、ゲートウェイ間送受信部218を介して、他のIoTゲートウェイそれぞれに、分割データの送信を要求する分割データ送信要求を送信する(S605)。
例えば、分割データ要求送信部222は、IoTゲートウェイ201に、分割データ501A2の送信を要求する分割データ送信要求422Aを送信する。さらに、分割データ要求送信部222は、IoTゲートウェイ301に、分割データ501A3の送信を要求する分割データ送信要求422Bを送信する。
他のIoTゲートウェイの分割データ要求受信部223は、ゲートウェイ間送受信部218を介して、分割データ送信要求を受信する。例えば、IoTゲートウェイ201の分割データ要求受信部223は、ゲートウェイ間送受信部218を介して、IoTゲートウェイ401からの分割データ送信要求422Aを受信する。IoTゲートウェイ301の分割データ要求受信部223は、ゲートウェイ間送受信部218を介して、IoTゲートウェイ401からの分割データ送信要求422Bを受信する。
分割データ送信要求を受信すると、分割データ要求受信部223は、分割データ送信要求で要求された分割データを分割データ格納部220から取得する。例えば、IoTゲートウェイ201の分割データ要求受信部223は、分割データ送信要求422Aで要求された分割データ501A2を、分割データ格納部220から取得する。IoTゲートウェイ301の分割データ要求受信部223は、分割データ送信要求422Bで要求された分割データ501A3を、分割データ格納部220から取得する。
そして、分割データ要求受信部223は、ゲートウェイ間送受信部218を介して、取得した分割データを、分割データ送信要求を送信したIoTゲートウェイに返信する(S606)。例えば、IoTゲートウェイ201の分割データ要求受信部223は、ゲートウェイ間送受信部218を介して、分割データ501A2を、IoTゲートウェイ401に返信する。IoTゲートウェイ301の分割データ要求受信部223は、ゲートウェイ間送受信部218を介して、分割データ501A3を、IoTゲートウェイ401に返信する。
なお、分割データを送信後、分割データ要求受信部223は、分割データ格納部220に保存されている分割データを削除してもよい。あるいは、分割データ要求受信部223は、分割データの送信先のIoTゲートウェイから受信完了の通知を受信した場合に、分割データ格納部220に保存されている分割データを削除してもよい。
IoTゲートウェイ401の分割データ要求送信部222は、ゲートウェイ間送受信部218を介して、他のIoTゲートウェイから、分割データを受信する。
分割データを受信すると、分割データ要求送信部222は、受信した分割データを、データ要求処理部221に送信する。
IoTゲートウェイ401のデータ要求処理部221は、分割データを受信すると、分割データ格納部220から、保存されている分割データを取得する。例えば、IoTゲートウェイ401のデータ要求処理部221は、分割データ501A2及び501A3を受信すると、分割データ格納部220から分割データ501A4を取得する。
そして、データ要求処理部221は、受信した分割データと、取得した分割データとを合成して、送信要求119Aにおいて要求された映像データ(例えば、映像データ501A)を生成する。
そして、データ要求処理部221は、サーバ送受信部212を介して、合成した映像データ(例えば、映像データ501A)を、サーバ101に返信する(S607)。
なお、映像データをサーバ101に送信後、データ要求処理部221は、所定のタイミングで、他のIoTゲートウェイから受信した分割データと、合成した映像データとを削除してもよい。
さらに、映像データの送信後、データ要求処理部221は、分割データ格納部220に保存されている分割データ(例えば、分割データ501A4)を削除してもよい。
なお、データ要求処理部221は、サーバ101から受信完了の通知を受信した場合に、削除を実行してもよい。
サーバ101のゲートウェイ送受信部111は、取得依頼117Aを送信したIoTゲートウェイから映像データを受信すると、受信した映像データをデータ受信部120に送信する。
データ受信部120は、受信した映像データを、データ格納部118に保存する。
さらに、データ受信部120は、受信した映像データを、データ取得部117に送信する。
なお、データ受信部120は、受信した映像データをデータ取得部117に送らず、データ格納部118に保存後、データ取得部117に「映像データをデータ格納部118に保存したこと」を通知してもよい。この場合、データ取得部117は、データ格納部118から映像データを取得すればよい。
データ取得部117は、映像データを、参照要求処理部116に送信する。
参照要求処理部116は、参照要求受信部115を介して、映像データを外部システム801に送信する(S608)。
なお、参照要求処理部116は、送信する映像データに所定の処理を実行してもよい。例えば、参照要求処理部116は、受信した映像データを含む返信用のデータを作成し、参照要求受信部115を介して、返信用のデータを外部システム801に送信してもよい。
なお、所定の処理を実行しないで映像データを外部システム801に送信する場合、参照要求処理部116及び参照要求受信部115を介さず、データ取得部117が、外部システム801に映像データを送信してもよい。
IoTシステム10は、外部システム801から参照要求811を受信すると、上記で説明した動作を実行する。
なお、IoTゲートウェイ201が、映像データ501Aを、IoTゲートウェイの数より少ない数に分割した場合、IoTゲートウェイ401は、次のように動作すればよい。
IoTゲートウェイ401は、分割データとともに、IoTゲートウェイ201が分割したデータを配布したIoTゲートウェイのゲートウェイ情報を受信する。
そこで、IoTゲートウェイ401は、分割されたデータとともに受信したゲートウェイ情報を用いて、他のIoTゲートウェイから分割データを取得する。
なお、ここまでの説明において、IoTシステム10は、センサデータを分散して保存する。ただし、IoTシステム10が分散して保存するデータは、センサデータに限定されない。例えば、IoTシステム10は、データ加工部215が加工したデータを分散保存してもよい。
[効果の説明]
次に、第1の実施形態の効果について説明する。
IoTゲートウェイ201ないし401は、センサデータの送信時間を改善するとの効果を奏する。
その理由は次のとおりである。
IoTゲートウェイ201ないし401は、他ゲートウェイ情報格納部213と、センサ受信部214と、データ分割部216と、分割データ転送部217と、ゲートウェイ間送受信部218と、分割データ受信部219と、分割データ格納部220とを含む。
他ゲートウェイ情報格納部213は、他のIoTゲートウェイにアクセスする際に参照する情報であるゲートウェイ情報を保存する。センサ受信部214は、センサデバイス(例えば、カメラ501)からセンサデータ(例えば、映像データ501A)を受信する。データ分割部216は、受信したセンサデータ(例えば、映像データ501A)を、所定の数の分割データ(例えば、分割データ501A2ないし501A4)に分割し、いずれか1つの分割データ(例えば、分割データ501A2)を選択する。ゲートウェイ間送受信部218は、他のIoTゲートウェイとのデータを仲介する。分割データ転送部217は、ゲートウェイ情報を用いて、選択した分割データを除いた残りの分割データ(例えば、分割データ501A3及び501A4)を、ゲートウェイ間送受信部218を介して他のIoTゲートウェイに転送する。分割データ受信部219は、他のIoTゲートウェイから、他のIoTゲートウェイがセンサデータを分割して生成した分割データ(例えば、分割データ601A4及び701A3)を、ゲートウェイ間送受信部218を介して受信する。分割データ格納部220は、選択した分割データ(例えば、分割データ501A2)及び受信した分割データ(例えば、分割データ601A4及び701A3)を保存する。
例えば、センサ受信部214がカメラ501から映像データ501Aを受信すると、データ分割部216は、所定の数の分割データに、映像データ501Aを分割する。そして、データ分割部216は、いずれか1つの分割データを分割データ格納部220に保存する。分割データ転送部217は、ゲートウェイ間送受信部218を介して、残りの分割データを他のIoTゲートウェイに転送する。さらに、分割データ受信部219は、ゲートウェイ間送受信部218を介して、他のIoTゲートウェイから分割データを受信し、分割データ格納部220に保存する。
このような構成を用いて、IoTゲートウェイ201ないし401は、映像データ501Aないし701Aの分割データを、分散して保存する。
そして、IoTゲートウェイ201ないし401は、センサデータを分割して分散保存することで、少なくともセンサデータの一部を、サーバ101からのセンサデータの送信を依頼されるIoTゲートウェイに転送しておくことができる。そのため、IoTゲートウェイ201ないし401は、サーバ101からセンサデータの送信を依頼されたときにおけるデータの転送量を削減できる。その結果、IoTゲートウェイ201ないし401は、サーバ101からのセンサデータを要求された場合に、センサデータの送信時間を改善できる。
さらに、IoTゲートウェイ201ないし401は、センサデータを分割して分散保存することで、センサデータの保存に必要な記憶容量の平準化も実現している。
さらに、IoTゲートウェイ201ないし401は、サーバ送受信部212と、データ要求処理部221と、分割データ要求送信部222と、分割データ要求受信部223とを含む。
分割データ要求送信部222は、分割データの要求を受信すると、ゲートウェイ間送受信部218を介して他のIoTゲートウェイに分割データの要求を送信する。そして、分割データ要求送信部222は、ゲートウェイ間送受信部218を介して要求した分割データを他のIoTゲートウェイから受信する。データ要求処理部221は、サーバ101からセンサデータ(例えば、映像データ501A)の要求を受信すると、分割データ要求送信部222にサーバ101から要求されたセンサデータの分割データの要求を送信する。そして、データ要求処理部221は、分割データ要求送信部222が受信した分割データと分割データ格納部220が保存するサーバ101から要求されたセンサデータの分割データとを合成してサーバ101から要求されたセンサデータを生成する。サーバ送受信部212は、サーバ101からのセンサデータの要求を受信するとデータ要求処理部221にサーバ101からのセンサデータの要求を送信する。そして、サーバ送受信部212は、データ要求処理部221において合成されたセンサデータをサーバ101に送信する。分割データ要求受信部223は、ゲートウェイ間送受信部218を介して他のIoTゲートウェイから分割データの送信の要求を受信する。そして、分割データ要求受信部223は、ゲートウェイ間送受信部218を介して他のIoTゲートウェイに分割データ格納部220に保存されている分割データを送信する。
データ要求処理部221は、サーバ送受信部212を介してデータ(例えば、映像データ501A)の要求を受信すると、分割データ要求送信部222に、要求されたデータの分割データ(例えば、分割データ501A2及び501A3)の取得を依頼する。分割データ要求送信部222は、分割データの取得の依頼を受信すると、ゲートウェイ間送受信部218を介して、他のIoTゲートウェイ(例えば、IoTゲートウェイ201及び301)に分割データの送信を依頼する。そして、分割データ要求送信部222は、他のIoTゲートウェイから分割データを受信する。そして、データ要求処理部221は、分割データ要求送信部222が受信した分割データと、分割データ格納部220が保存する分割データとを合成して要求されたデータを生成する。そして、データ要求処理部221は、サーバ送受信部212を介して、サーバ101に、要求されたデータを送信する。さらに、分割データ要求受信部223は、他のIoTゲートウェイから送信を依頼された分割データを返信する。
このような構成を用いて、IoTゲートウェイ201ないし401は、分散して保存している分割データを合成したセンサデータをサーバ101に送信するとの効果を得ることができる。そのため、サーバ101は、いずれの一つのIoTゲートウェイからでも、センサデータを取得することができる。その結果、例えば、サーバ101は、転送時間が短いIoTゲートウェイからセンサデータを受信できる。
なお、サーバ101は、センサデータを複数の部分に分けて、複数のIoTゲートウェイから受信して、受信したセンサデータの部分を合成してもよい。例えば、サーバ101は、センサデータの前半と後半とを、並行して、2つのIoTゲートウェイから受信し、受信したデータを合成してセンサデータを生成してもよい。この場合、依頼を受けた各IoTゲートウェイは、所定数の分割データを集めて、部分的なセンサデータを生成して、サーバ101に送信すればよい。
さらに、IoTゲートウェイ201ないし401は、自ゲートウェイ情報格納部211を含む。
自ゲートウェイ情報格納部211は、自IoTゲートウェイのゲートウェイ情報(例えば、IoTゲートウェイ201のゲートウェイ情報211A)を保存する。
そのため、IoTゲートウェイ201ないし401は、自らのゲートウェイ情報をサーバ101に送信することができるとの効果を得ることができる。そのため、サーバ101は、各IoTゲートウェイから受信したゲートウェイ情報を保存して、各IoTゲートウェイに他のIoTゲートウェイのゲートウェイ情報を配布できる。
さらに、IoTゲートウェイ201ないし401は、データ加工部215を含む。
データ加工部215は、カメラから受信した映像データを加工した加工データを生成する。そのため、IoTゲートウェイ201ないし401は、サーバ101に加工データを提供できるとの効果を得ることができる。
サーバ101は、ゲートウェイ送受信部111と、ゲートウェイ情報格納部112と、データ取得部137と、データ格納部118と、データ要求部119と、データ受信部120とを含む。
ゲートウェイ送受信部111は、IoTゲートウェイとのデータの送信及び受信を仲介する。ゲートウェイ情報格納部112は、IoTゲートウェイのゲートウェイ情報と、ゲートウェイ情報の送信及び受信に関連する情報とを保存する。データ格納部118は、IoTゲートウェイから受信したセンサデータを保存する。データ要求部119は、ゲートウェイ情報格納部112が保存するゲートウェイ情報の送信及び受信に関連する情報を用いてIoTゲートウェイを選定する。そして、データ要求部119は、選定したIoTゲートウェイのゲートウェイ情報を参照して、ゲートウェイ送受信部111を介して、選定したIoTゲートウェイにセンサデータ(例えば、映像データ501A)の送信依頼を送信する。データ受信部120は、ゲートウェイ送受信部111を介して、IoTゲートウェイから送信依頼に対応したセンサデータ(例えば、映像データ501A)を受信する。データ取得部117は、外部システム801から送信を依頼されたセンサデータが、データ格納部118に保存されている場合、保存されているセンサデータを外部システム801に送信する。そして、データ取得部117は、送信を依頼されたセンサデータが保存されていない場合、データ要求部119にセンサデータの取得依頼を送信する。そして、データ取得部117は、データ受信部120が受信したセンサデータを外部システム801に送信する。
データ取得部117は、データがデータ格納部118に保存されている場合、保存されているデータを外部システム801に送信する。
保存されていない場合、データ取得部117は、データ要求部119に、データの取得を要求する。データ要求部119は、ゲートウェイ情報格納部112が保存しているゲートウェイ情報などを参照して、ゲートウェイ送受信部111を介して、適切なIoTゲートウェイにデータの送信を要求する。データ受信部120は、ゲートウェイ送受信部111を介して、IoTゲートウェイからデータを受信する。そして、データ取得部117は、データ受信部120が受信したデータを外部システム801に送信する。
このように構成されたサーバ101は、保存しているデータについては、IoTゲートウェイにアクセスせずに、外部システム801にデータを提供できる。この場合、サーバ101は、IoTゲートウェイへのアクセス時間を省略できる。
さらに、サーバ101は、保存していないデータについて、適切なIoTゲートウェイ(例えば、応答時間が短いIoTゲートウェイ)にデータの要求を送信する。そのため、サーバ101は、IoTゲートウェイからデータを取得する場合の時間を削減するとの効果を得ることができる。
なお、IoTゲートウェイ201ないし401は、既に説明した通り、サーバ101への応答時間を削減する。そのため、IoTシステム10は、サーバ101が一般的なIoTゲートウェイにアクセスする場合に比較して、応答時間を削減することができる。
さらに、サーバ101は、ゲートウェイ情報展開部113を含む。
ゲートウェイ情報展開部113は、ゲートウェイ送受信部111がIoTゲートウェイからゲートウェイ情報を受信した場合、ゲートウェイ情報格納部112が保存する他のIoTゲートウェイのゲートウェイ情報を、IoTゲートウェイに展開する。
そのため、サーバ101は、IoTゲートウェイに、他のIoTゲートウェイのゲートウェイ情報を展開することができる。
さらに、サーバ101は、参照要求受信部115と、参照要求処理部116とを含む。
参照要求受信部115は、外部システム801からデータの参照の要求を受信すると、要求されたデータに対応する参照要求を、参照要求処理部116に送信する。さらに、参照要求受信部115は、参照要求処理部116からデータを受信すると、受信したデータを外部システム801に送信する。
参照要求処理部116は、参照要求受信部115から参照要求を受信すると、データ取得部117に参照要求の対象のデータの取得の指示を送信する。そして、参照要求処理部116は、データ取得部117からデータを受信すると、受信したデータを参照要求受信部115に送信する。
上記の構成を用いて、サーバ101は、外部システム801から要求されたデータを、外部システム801に提供できる。
さらに、サーバ101は、加工データ格納部114を含む。
加工データ格納部114は、IoTゲートウェイから加工データを受信した場合、受信した加工データを保存する。
そのため、サーバ101は、IoTゲートウェイが生成した加工データを保存することができる。
IoTシステム10は、IoTゲートウェイ201ないし401と、サーバ101とを含む。
そのため、IoTシステム10は、上記で説明したIoTゲートウェイ201ないし401、及び、サーバ101が奏する効果を実現できる。
[実施形態の変形例]
次に、第1の実施形態の変形例を説明する。
(1)IoTゲートウェイの選択
サーバ101は、ゲートウェイ情報の送信及び受信に関連する情報とは異なる情報を用いて、センサデータの取得依頼を送信するIoTゲートウェイを選定してもよい。
例えば、サーバ101は、CPUの処理負荷が最も低い(例えば、CPUの空き時間が最も多い)IoTゲートウェイを選択してもよい。
なお、IoTゲートウェイのCPUの負荷の判定方法は、任意である。例えば、サーバ101は、IoTゲートウェイのリソース使用状況を収集し、リソースの使用状況に基づいて、IoTゲートウェイのCPUの負荷を判定してもよい。
なお、CPUの負荷を用いる選択は、IoTゲートウェイにおけるセンサデータの送信において、分割データの結合処理の時間が、センサデータの送信処理の時間よりかなり長い場合に、特に有効である。
あるいは、サーバ101は、IoTゲートウェイの選定のための情報として、他の情報を用いてもよい。例えば、サーバ101は、IoTゲートウェイのTurn Around Time(TAT)、IoTゲートウェイとの接続において経由する機器の数(ホップ数)、又は、IoTゲートウェイまでのパケットのロスト率を用いてもよい。なお、このような情報を用いる場合、サーバ101は、IoTゲートウェイからゲートウェイ情報の取得において、IoTゲートウェイとの通信における通信に関する情報を取得すればよい。例えば、サーバ101は、IoTゲートウェイとの通信状態を監視してもよい。
(2)センサデータの分割
すでに説明したように、IoTゲートウェイは、センサデータを、IoTシステム10に含まれるIoTゲートウェイの数より少ない数に分割してもよい。この場合、既に説明した例以外にも、IoTゲートウェイは、次のように動作してもよい。
IoTシステム10は、所定の基準に基づいて、分割データを、一部のIoTゲートウェイに偏在させてもよい。
例えば、IoTシステム10は、通信の速度が速い、及び/又は、通信環境がよい一部のIoTゲートウェイに、分割データを保存させてもよい。言い換えると、IoTシステム10は、通信速度が遅い、又は、通信環境が悪いIoTゲートウェイには、分割データを保存しなくてもよい。
あるいは、IoTシステム10は、通信の速度が速い、及び/又は、通信環境がよいIoTゲートウェイが保存する分割データのサイズを、通信の速度が遅い、又は、通信環境が悪いIoTゲートウェイが保存する分割データのサイズより大きくしてもよい。
なお、IoTシステム10は、所定のセンサデータ(例えば、外部システム801から要求の多いセンサデータ)に対して、上記のような分割データの偏在及び/又はサイズの変更を適用してもよい。
あるいは、一部のIoTゲートウェイ間において、分割データの転送に時間が掛かる場合、IoTシステム10は、分割データの転送に時間が掛かるIoTゲートウェイ間での分割データの転送を実行しなくてもよい。つまり、IoTシステム10は、分割データの転送時間が短いIoTゲートウェイ間での分割データの転送を用いて、センサデータを分散配置してもよい。
なお、IoTシステム10は、IoTゲートウェイ間での分割データの転送の性能に基づいて、予め、分割データを転送するためのIoTゲートウェイのグループを作成してもよい。この場合、IoTゲートウェイは、同じグループに含まれるIoTゲートウェイ間で分割データを分散配置する。
このような構成を用いると、IoTゲートウェイは、さらに、分割データの転送時間、及び、分割データを結合してセンサデータの生成する時間を短くできる。
[ハードウェア構成]
図面を参照して、ハードウェアの構成を説明する。
(1)サーバ
次に、サーバ101のハードウェア構成について説明する。
サーバ101の各構成部は、ハードウェア回路で構成されてもよい。
あるいは、サーバ101において、各構成部は、ネットワークを介して接続した複数の装置を用いて、構成されてもよい。
あるいは、サーバ101において、複数の構成部は、1つのハードウェアで構成されてもよい。
あるいは、サーバ101は、ソフトウェアとハードウェアとの組み合わせを用いて構成されてもよい。
あるいは、サーバ101は、CPU(Central Processing Unit)と、ROM(Read Only Memory)と、RAM(Random Access Memory)とを含むコンピュータ装置として実現されてもよい。サーバ101は、上記構成に加え、さらに、入出力接続回路(IOC:Input and Output Circuit)を含むコンピュータ装置として実現されてもよい。サーバ101は、上記構成に加え、さらに、ネットワークインターフェース回路(NIC:Network Interface Circuit)を含むコンピュータ装置として実現されてもよい。
図7は、サーバ101のハードウェア構成の一例を示すブロック図である。
サーバ101は、CPU911と、ROM912と、RAM913と、記憶装置914と、IOC915と、NIC918とを含み、コンピュータ装置を構成している。
CPU911は、ROM912及び/又は記憶装置914からプログラムを読み込む。そして、CPU911は、読み込んだプログラムに基づいて、RAM913と、記憶装置914と、IOC915と、NIC918とを制御する。そして、CPU911を含むコンピュータ装置は、これらの構成を制御し、図2に示されているサーバ101の各構成要素の機能を実現する。
なお、図2に示されている構成要素とは、ゲートウェイ送受信部111と、ゲートウェイ情報展開部113と、参照要求受信部115と、参照要求処理部116と、データ取得部117と、データ要求部119と、データ受信部120とである。さらに、構成要素は、ゲートウェイ情報格納部112と、加工データ格納部114と、データ格納部118とを含む。
CPU911は、各機能を実現する際に、RAM913又は記憶装置914を、プログラムの一時的な記憶媒体として使用してもよい。
また、CPU911は、コンピュータで読み取り可能にプログラムを記憶した記録媒体919が含むプログラムを、図示しない記録媒体読み取り装置を用いて読み込んでもよい。あるいは、CPU911は、NIC918を介して、図示しない外部の装置からプログラムを受け取り、RAM913又は記憶装置914に保存して、保存したプログラムを基に動作してもよい。
ROM912は、CPU911が実行するプログラム及び固定的なデータを記憶する。ROM912は、例えば、P-ROM(Programmable-ROM)又はフラッシュROMである。
RAM913は、CPU911が実行するプログラム及びデータを一時的に記憶する。RAM913は、例えば、D-RAM(Dynamic-RAM)である。
記憶装置914は、サーバ101が長期的に保存するデータ及びプログラムを記憶する。記憶装置914は、ゲートウェイ情報格納部112と、加工データ格納部114と、データ格納部118として動作する。また、記憶装置914は、CPU911の一時記憶装置として動作してもよい。記憶装置914は、例えば、ハードディスク装置、光磁気ディスク装置、SSD(Solid State Drive)又はディスクアレイ装置である。
ROM912と記憶装置914とは、不揮発性(non-transitory)の記録媒体である。一方、RAM913は、揮発性(transitory)の記録媒体である。そして、CPU911は、ROM912、記憶装置914、又は、RAM913に記憶されているプログラムを基に動作可能である。つまり、CPU911は、不揮発性記録媒体又は揮発性記録媒体を用いて動作可能である。
IOC915は、CPU911と、入力機器916及び表示機器917とのデータを仲介する。IOC915は、例えば、IOインターフェースカード又はUSB(Universal Serial Bus)カードである。さらに、IOC915は、USBのような有線に限らず、無線を用いてもよい。
入力機器916は、サーバ101の操作者からの入力指示を受け取る機器である。入力機器916は、例えば、キーボード、マウス又はタッチパネルである。
表示機器917は、サーバ101の操作者に情報を表示する機器である。表示機器917は、例えば、液晶ディスプレイ、有機エレクトロルミネッセンス・ディスプレイ、又は、電子ペーパーである。
NIC918は、ネットワークを介したIoTゲートウェイ201ないし401、及び、外部システム801とのデータのやり取りを中継する。NIC918は、例えば、LAN(Local Area Network)カードである。さらに、NIC918は、有線に限らず、無線を用いてもよい。
このように構成されたサーバ101は、図2に示されているサーバ101と同様の効果を得ることができる。
その理由は、図7のサーバ101のCPU911が、プログラムに基づいて、図2のサーバ101と同様の機能を実現できるためである。
(2)IoTゲートウェイ
次に、IoTゲートウェイ201ないし401のハードウェア構成について、IoTゲートウェイ201を用いて説明する。
IoTゲートウェイ201の各構成部は、ハードウェア回路で構成されてもよい。
あるいは、IoTゲートウェイ201において、各構成部は、ネットワークを介して接続した複数の装置を用いて、構成されてもよい。
あるいは、IoTゲートウェイ201において、複数の構成部は、1つのハードウェアで構成されてもよい。
あるいは、IoTゲートウェイ201は、ソフトウェアとハードウェアとの組み合わせを用いて構成されてもよい。
あるいは、IoTゲートウェイ201は、CPUとROMとRAMとを含むコンピュータ装置として実現されてもよい。IoTゲートウェイ201は、上記構成に加え、さらに、NICを含むコンピュータ装置として実現されてもよい。
図8は、IoTゲートウェイ201のハードウェア構成の一例を示すブロック図である。
図8のIoTゲートウェイ201は、CPU921と、ROM922と、RAM923と、記憶装置924と、NIC928とを含み、コンピュータ装置を構成している。
CPU921は、ROM922及び/又は記憶装置924からプログラムを読み込む。そして、CPU921は、読み込んだプログラムに基づいて、RAM923と、記憶装置924と、NIC928とを制御する。そして、CPU921を含むコンピュータは、これらの構成を制御し、図3に示されているIoTゲートウェイ201の構成要素の機能を実現する。
なお、図3に示されているIoTゲートウェイ201の構成要素とは、自ゲートウェイ情報格納部211と、サーバ送受信部212と、他ゲートウェイ情報格納部213とである。さらに、IoTゲートウェイ201の構成要素は、センサ受信部214と、データ分割部216と、分割データ転送部217と、ゲートウェイ間送受信部218と、分割データ受信部219と、分割データ格納部220とを含む。さらに、IoTゲートウェイ201の構成要素は、データ要求処理部221と、分割データ要求送信部222と、分割データ要求受信部223とを含む。さらに、IoTゲートウェイ201の構成要素は、データ加工部215を含む。
CPU921は、各機能を実現する際に、RAM923又は記憶装置924を、プログラムの一時的な記憶媒体として使用してもよい。
また、CPU921は、コンピュータで読み取り可能にプログラムを記憶した記録媒体929が含むプログラムを、図示しない記録媒体読み取り装置を用いて読み込んでもよい。あるいは、CPU921は、NIC928を介して、図示しない外部の装置からプログラムを受け取り、RAM923又は記憶装置924に保存して、保存したプログラムを基に動作してもよい。
ROM922は、CPU921が実行するプログラム及び固定的なデータを記憶する。ROM922は、例えば、P-ROM又はフラッシュROMである。
RAM923は、CPU921が実行するプログラム及びデータを一時的に記憶する。RAM923は、例えば、D-RAMである。
記憶装置924は、IoTゲートウェイ201が長期的に保存するデータ及びプログラムを記憶する。記憶装置924は、自ゲートウェイ情報格納部211と、他ゲートウェイ情報格納部213と、分割データ格納部220として動作する。また、記憶装置924は、CPU921の一時記憶装置として動作してもよい。記憶装置924は、例えば、ハードディスク装置、光磁気ディスク装置、SSD又はディスクアレイ装置である。
ROM922と記憶装置924とは、不揮発性(non-transitory)の記録媒体である。一方、RAM923は、揮発性(transitory)の記録媒体である。そして、CPU921は、ROM922、記憶装置924、又は、RAM923に記憶されているプログラムを基に動作可能である。つまり、CPU921は、不揮発性記録媒体又は揮発性記録媒体を用いて動作可能である。
NIC928は、ネットワークを介したカメラ501と、他のIoTゲートウェイ(IoTゲートウェイ301及びIoTゲートウェイ401)と、サーバ101とのデータのやり取りを中継する。NIC928は、例えば、LANカードである。さらに、NIC928は、有線に限らず、無線を用いてもよい。
このように構成されたIoTゲートウェイ201は、図3に示されているIoTゲートウェイ201と同様の効果を得ることができる。
その理由は、図8のIoTゲートウェイ201のCPU921が、プログラムに基づいて図3に示されているIoTゲートウェイ201と同様の機能を実現できるためである。
<第2の実施形態>
次に、第2の実施形態として、IoTゲートウェイ201ないし401の概要の一例であるデータ中継装置13を説明する。
図9は、第2の実施形態にかかるデータ中継装置13の構成の一例を示すブロック図である。
データ中継装置13は、データ中継装置情報格納部233と、センサデータ受信部234と、データ分割部236と、分割データ転送部237と、データ中継装置間送受信部238と、分割データ受信部239と、分割データ格納部240とを含む。
データ中継装置情報格納部233(第1のデータ中継装置情報格納部)は、他のデータ中継装置にアクセスする際に参照する情報であるデータ中継装置情報を保存する。センサデータ受信部234は、センサデバイスからセンサデータを受信する。データ分割部236は、受信したセンサデータを、所定の数の分割データに分割し、いずれか1つの分割データを選択する。データ中継装置間送受信部238は、他のデータ中継装置とのデータを仲介する。分割データ転送部237は、データ中継装置情報を用いて、選択した分割データを除いた残りの分割データを、データ中継装置間送受信部238を介して他のデータ中継装置に転送する。分割データ受信部239は、他のデータ中継装置から、他のデータ中継装置がセンサデータを分割して生成した分割データを、データ中継装置間送受信部238を介して受信する。分割データ格納部240は、選択した分割データ及び受信した分割データを保存する。
データ中継装置13の各構成は、IoTゲートウェイ201ないし401における対応する各構成と同様の機能を実現する。
なお、第1の実施形態の説明における構成と、第2の実施形態の説明における構成との対応関係は、次の通りである。
他ゲートウェイ情報格納部213は、データ中継装置情報格納部233(第1のデータ中継情報格納部)の一例である。
センサ受信部214は、センサデータ受信部234の一例である。
データ分割部216は、データ分割部236の一例である。
分割データ転送部217は、分割データ転送部237の一例である。
ゲートウェイ間送受信部218は、データ中継装置間送受信部238の一例である。
分割データ受信部219は、分割データ受信部239の一例である。
分割データ格納部220は、分割データ格納部240の一例である。
カメラ501ないし701は、センサデバイスの一例である。
映像データ501Aないし701Aは、センサデータの一例である。
このように構成されたデータ中継装置13は、IoTゲートウェイ201ないし401と同様の効果を得ることができる。
その理由は、データ中継装置13の各構成が、IoTゲートウェイ201ないし401における対応する構成と同様の機能を実現するためである。
なお、データ中継装置13は、第1の実施形態におけるIoTゲートウェイ201ないし401の最小構成である。
なお、データ中継装置13は、図8に示されているコンピュータ装置を用いて実現されてもよい。
<第3の実施形態>
次に、第3の実施形態として、IoTシステム10の概要の一例であるIoTシステム11を説明する。
図10は、第3の実施形態にかかるIoTシステム11の構成の一例を示すブロック図である。
IoTシステム11は、サーバ12と、複数のデータ中継装置14とを含む。
そして、IoTシステム11は、外部システムと、センサデバイスとに接続されている。
なお、第1の実施形態の説明における構成と、第3の実施形態の説明における構成との対応関係は、次の通りである。
外部システム801は、外部システムの一例である。
カメラ501ないし701は、センサデバイスの一例である。
分割データ501A2ないし501A4は、分割データの一例である。
図11は、第3の実施形態にかかるサーバ12の構成の一例を示すブロック図である。
サーバ12は、データ中継装置送受信部131と、データ中継装置情報格納部132と、データ取得部137と、データ格納部138と、データ要求部139と、データ受信部140とを含む。
データ中継装置送受信部131は、データ中継装置14とのデータの送信及び受信を仲介する。データ中継装置情報格納部132(第2のデータ中継装置情報格納部)は、データ中継装置14のデータ中継装置情報と、データ中継装置情報の送信及び受信に関連する情報とを保存する。データ格納部138は、データ中継装置14から受信したセンサデータを保存する。データ要求部139は、データ中継装置情報格納部132(第2のデータ中継装置情報格納部)が保存するデータ中継装置情報の送信及び受信に関連する情報を用いてデータ中継装置14を選定する。そして、データ要求部139は、選定したデータ中継装置14のデータ中継装置情報を参照して、データ中継装置送受信部131を介して、選定したデータ中継装置14にセンサデータの送信依頼を送信する。データ受信部140は、データ中継装置送受信部131を介して、データ中継装置14から送信依頼に対応したセンサデータを受信する。データ取得部137と、外部システムから送信を依頼されたセンサデータが、データ格納部138に保存されている場合、保存されているセンサデータを外部システムに送信する。そして、データ取得部137は、送信を依頼されたセンサデータが保存されていない場合、データ要求部139にセンサデータの取得依頼を送信する。そして、データ取得部137は、データ受信部140が受信したセンサデータを外部システムに送信する。
サーバ12の各構成は、サーバ101における対応する各構成と同様の機能を実現する。
なお、第1の実施形態の説明における構成と、第3の実施形態の説明における構成との対応関係は、次の通りである。
ゲートウェイ送受信部111は、データ中継装置送受信部131の一例である。
ゲートウェイ情報格納部112は、データ中継装置情報格納部132(第2のデータ中継装置情報格納部)の一例である。
データ取得部117は、データ取得部137の一例である。
データ格納部118は、データ格納部138の一例である。
データ要求部119は、データ要求部139の一例である。
データ受信部120は、データ受信部140の一例である。
図12は、第3の実施形態にかかるデータ中継装置14の構成の一例を示すブロック図である。
データ中継装置14は、データ中継装置13の構成に加え、さらに、サーバ送受信部232と、データ要求処理部241と、分割データ要求送信部242と、分割データ要求受信部243とを含む。
分割データ要求送信部242は、分割データの要求を受信すると、データ中継装置間送受信部238を介して他のデータ中継装置に分割データの要求を送信する。そして、分割データ要求送信部242は、データ中継装置間送受信部238を介して要求した分割データを他のデータ中継装置から受信する。データ要求処理部241は、サーバ12からセンサデータの要求を受信すると、分割データ要求送信部242にサーバ12から要求されたセンサデータの分割データの要求を送信する。そして、データ要求処理部241は、分割データ要求送信部242が受信した分割データと分割データ格納部240が保存するサーバ12から要求されたセンサデータの分割データとを合成してサーバ12から要求されたセンサデータを生成する。サーバ送受信部232は、サーバ12からのセンサデータの要求を受信するとデータ要求処理部241にサーバ12からのセンサデータの要求を送信する。そして、サーバ送受信部232は、データ要求処理部241において合成されたセンサデータをサーバ12に送信する。分割データ要求受信部243は、データ中継装置間送受信部238を介して他のデータ中継装置から分割データの送信の要求を受信する。そして、分割データ要求受信部243は、データ中継装置間送受信部238を介して他のデータ中継装置に分割データ格納部240に保存されている分割データを送信する。
データ中継装置14の各構成は、データ中継装置13の各構成、及び、IoTゲートウェイ201ないし401における対応する各構成と同様の機能を実現する。
なお、第1の実施形態の説明における構成と、第3の実施形態の説明における構成との対応関係は、次の通りである。
サーバ送受信部212は、サーバ送受信部232の一例である。
データ要求処理部221は、データ要求処理部241の一例である。
分割データ要求送信部222は、分割データ要求送信部242の一例である。
分割データ要求受信部223は、分割データ要求受信部243の一例である。
このように構成されたIoTシステム11は、IoTシステム10と同様の効果を得ることができる。
その理由は、IoTシステム11の各構成が、IoTシステム10における対応する構成と同様の機能を実現するためである。
なお、IoTシステム11は、第1の実施形態におけるIoTシステム10の最小構成である。
なお、サーバ12は、図7に示されたコンピュータ装置を用いて実現されてもよい。
また、データ中継装置14は、図8に示されたコンピュータ装置を用いて実現されてもよい。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成及び詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。