以下、本開示の実施の形態に係る通信システムについて、添付図面を参照しながら説明する。本実施の形態に係る機器は、当該機器の動作を制御する機器制御ユニットと、他の機器で生成され他の機器が接続された局所ネットワークを介して取得した機器電文、または、機器制御ユニットで生成された機器電文を、広域ネットワークを介して広域ネットワークに接続されたサーバへ送信する通信制御ユニットと、を備える。
本実施の形態に係る通信システムは、例えば図1に示すように、クラウドサーバ2と、住宅内に設置された機器1、3と、を備える。ここで、機器1、3は、局所ネットワークNW2を介して通信可能となっている。また、クラウドサーバ2は、インターネットのような広域ネットワークNW1およびブロードバンドルータ(以下、「BBR」と称する。)8を介して通信可能となっている。機器3は、例えば通信機能を備える空気調和機であり、局所ネットワークNW2を介してBBR8および機器1と通信する。
機器3は、例えば空気調和機であり、例えばECHONETLite(登録商標)のような通信ミドルウェアを用いて、局所ネットワークNW2を介して機器1と通信する。また、機器3は、機器1から送信される自機の状態を示す機器状態情報のクラウドサーバ2への送信を要求する機器状態要求情報を取得すると、機器3の状態を示す状態パラメータ情報を含む機器状態情報を生成して機器1へ送信する。更に、機器3は、初めて局所ネットワークNW2に接続されると、局所ネットワークNW2に接続されたことを通知するネットワーク参加通知情報を生成して機器1へ送信する。ここで、ネットワーク参加通知情報は、例えば機器3のMACアドレス情報およびIPアドレス情報を含み、例えばECHONETLite規格におけるインスタンスリスト通知情報に相当する。また、機器3は、機器1から送信される制御情報に基づいて動作する。なお、機器3は、機器1から例えば自機を識別する機器識別情報の送信を要求する機器識別情報要求情報を取得すると、これに応じて、機器識別情報を生成して機器1へ送信する機能も有する。
機器1は、機器1の動作を制御する機器制御ユニット12と、他の機器3で生成され局所ネットワークNW2を介して取得した機器電文、または、機器制御ユニット12で生成された機器電文を、広域ネットワークNW1を介してクラウドサーバ2へ送信する通信制御ユニット11と、を備える。また、機器1は、例えば、機器1の周囲の環境パラメータを計測し、計測した環境パラメータを示す環境パラメータ情報を機器制御ユニット12へ出力するセンサ13と、機器制御ユニット12から入力される制御信号により機器1を駆動する駆動部14と、を備える。ここで、環境パラメータとしては、温度、湿度、CO2濃度等が挙げられる。クラウドサーバ2から広域ネットワークNW1を介して通信制御ユニット11へ送信された機器識別情報要求情報(マルチキャストまたはブロードキャストでの送信要求)を受信した通信制御ユニット11は、機器制御ユニット12および機器3に漏れなく送信する機能を備える。
通信制御ユニット11は、図2に示すように、CPU(Central Processing Unit)101Aと、主記憶部102Aと、補助記憶部103Aと、通信部106Aと、内部通信インタフェース107Aと、各部を接続するバス109Aと、を備える。主記憶部102Aは、RAM(Random Access Memory)のような揮発性メモリであり、CPU101Aの作業領域として使用される。補助記憶部103Aは、半導体メモリのような不揮発性メモリを有し、ROM(Read Only Memory)、ストレージとして機能し、通信制御ユニット11の各種機能を実現するためのプログラムを記憶する。通信部106Aは、機器3、BBR8との間で通信を行う。内部通信インタフェース107Aは、機器制御ユニット12との間での通信専用の通信路を介して通信を行う。
通信制御ユニット11では、CPU101Aが、補助記憶部103Aが記憶するプログラムを主記憶部102Aに読み込んで実行することにより、図3に示すように、電文取得部111、送信制御部112、カプセル化電文取得部113、送信先判定部114、電文送信部115および電文通知部116として機能する。また、図2に示す補助記憶部103Aは、図3に示すように、アドレス記憶部131を有する。アドレス記憶部131は、機器制御ユニット12を識別する、機器制御ユニット12に付与されたIPアドレスを示すIPアドレス情報および機器制御ユニット12に固有のMACアドレスを示すMACアドレス情報と、通信制御ユニット11に付与されたIPアドレスを示すIPアドレス情報および通信制御ユニット11に固有のMACアドレスを示すMACアドレス情報と、を記憶する機器識別情報記憶部である。
電文取得部111は、機器3から送信される機器電文、または、機器制御ユニット12から機器制御ユニット12との通信専用の通信路を介して転送される機器電文を取得し、取得した機器電文を送信制御部112に通知する。この機器電文は、機器3が局所ネットワークNW2に新たに接続されたことを通知するための機器電文であるネットワーク参加通知情報、または、前述の機器状態情報である。ネットワーク参加通知情報は、例えばECHONETLite規格の通信プロトコルにおいて新規にノードの機器3が起動した際に機器3からマルチキャスト送信されるインスタンスリスト通知情報である。また、識別番号情報は、例えばECHONETLite規格において機器3毎に一意に付与された16バイトの識別番号である。また、機器制御ユニット12から機器制御ユニット12との通信専用の通信路を介して転送される機器電文には、送信元のIPアドレス情報、MACアドレス情報が含まれていない。
送信制御部112は、電文取得部111から通知される機器電文に、送信元のMACアドレス情報、IPアドレス情報が含まれるか否かを判定する。ここで、送信制御部112は、通知された機器電文に、送信元のMACアドレス情報、IPアドレス情報が含まれると判定すると、当該機器電文に、そのまま、アドレス記憶部131が記憶する、通信制御ユニット11のIPアドレス情報、MACアドレス情報を付加するとともに、クラウドサーバ2を送信先に指定するためのヘッダ情報を付加するカプセル化処理を実行する。ここで、ヘッダ情報は、クラウドサーバ2のドメイン名情報を含む。一方、送信制御部112は、電文取得部111から通知される機器電文に、送信元のMACアドレス情報、IPアドレス情報が含まれていないと判定すると、機器電文に、アドレス記憶部131が記憶する、機器制御ユニット12のIPアドレス情報、MACアドレス情報を、機器電文の送信元のIPアドレス情報およびMACアドレス情報として付加する。そして、送信制御部112は、アドレス記憶部131が記憶する、通信制御ユニット11のIPアドレス情報、MACアドレス情報を付加するとともに、クラウドサーバ2を送信先に指定するためのヘッダ情報を付加するカプセル化処理を実行する。そして、送信制御部112は、カプセル化された機器電文をクラウドサーバ2へ送信する。
カプセル化電文取得部113は、クラウドサーバ2から機器1の通信制御ユニット11を送信先とする各種情報を取得すると、取得した情報からヘッダ情報を解除してから非カプセル化することにより、機器3または機器制御ユニット12のMACアドレス情報と、通信制御ユニット11のMACアドレス情報とを含む各種情報を抽出する。ここで、各種情報には、機器3に対して機器3の状態を示す機器状態情報の送信を要求する機器状態要求情報および機器3を制御するための制御情報が含まれる。そして、カプセル化電文取得部113は、抽出した各種情報を送信先判定部114に通知する。
送信先判定部114は、クラウドサーバ2から送信される機器電文に含まれる機器電文の送信先のIPアドレス情報、MACアドレス情報が、アドレス記憶部131が記憶する、機器制御ユニット12のIPアドレス情報、MACアドレス情報と一致するか否かを判定する。電文通知部116は、機器電文の送信先のIPアドレス情報、MACアドレス情報が、アドレス記憶部131が記憶する、機器制御ユニット12のIPアドレス情報、MACアドレス情報と一致すると判定されると、機器電文を機器制御ユニット12へ転送する。電文送信部115は、機器電文の送信先のIPアドレス情報、MACアドレス情報が、アドレス記憶部131が記憶する、機器制御ユニット12のIPアドレス情報、MACアドレス情報と不一致と判定されると、当該IPアドレス情報、MACアドレス情報に基づいて、機器電文を他の機器3へ送信する。
図2に戻って、機器制御ユニット12は、CPU101Bと、主記憶部102Bと、補助記憶部103Bと、内部通信インタフェース107Bと、各部を接続するバス109Bと、を備える。主記憶部102Bは、主記憶部102Aと同様に揮発性メモリであり、CPU101Bの作業領域として使用される。補助記憶部103Bは、不揮発性メモリを有し、機器制御ユニット12の各種機能を実現するためのプログラムを記憶する。内部通信インタフェース107Bは、通信制御ユニット11との間での通信専用の通信路を介して通信を行う。
機器制御ユニット12では、CPU101Bが、補助記憶部103Bが記憶するプログラムを主記憶部102Bに読み込んで実行することにより、図3に示すように、電文取得部311、機器情報通知部312、機器制御部313、機器状態情報生成部314および機器状態通知部315として機能する。また、図2に示す補助記憶部103Bは、図3に示すように、機器制御ユニット12に付与されたIPアドレス情報、機器制御ユニット12に固有のMACアドレス情報、機器1の機種を示す機種情報および機器制御ユニット12をアプリケーション層で識別する識別番号情報を記憶する機器情報記憶部331を有する。ここで、機器制御ユニット12に付与されるIPアドレス情報は、機器3や通信制御ユニット11のIPアドレス情報と異なる値に設定される必要がある。例えば機器制御ユニット12に付与されるIPアドレス情報のネットワーク部を通信制御ユニット11に付与されたIPアドレスのネットワーク部と異なる値に設定する等により実現可能である(なお、機器制御ユニット12に付与されるIPアドレス情報のホスト部のアドレスは、通信制御ユニット11のアドレスに依存せず決定されてよい)。機器1の起動時に通信制御ユニット11から取得されて機器情報記憶部331に記憶されるものであってもよい。或いは、機器制御ユニット12に付与されたIPアドレス情報が、通信制御ユニット11により決定され、通信制御ユニット11から通知されて機器情報記憶部331に記憶されるものであってもよい。
電文取得部311は、通信制御ユニット11から転送される機器電文を取得すると、取得した機器電文を機器状態情報生成部314、または、機器制御部313に通知する。電文取得部311は、取得した機器電文が制御情報である場合、機器制御部313に通知し、取得した機器電文が機器状態要求情報である場合、機器状態情報生成部314に通知する。機器情報通知部312は、機器1が初めて局所ネットワークNW2に接続されると、機器情報記憶部331が記憶する、機器制御ユニット12のIPアドレス情報、MACアドレス情報等を含むネットワーク参加通知情報を生成して、前述の通信制御ユニット11との通信専用の通信路を介して通信制御ユニット11へ転送する。
機器制御部313は、電文取得部311から制御情報が通知されると、通知された制御情報に基づいて制御信号を生成して駆動部14へ出力する。また、機器制御部313は、通知された制御情報に基づいて、機器1の動作状態を示す動作状態情報を生成して機器状態情報生成部314に通知する。機器状態情報生成部314は、電文取得部311から機器状態要求情報が通知されると、これに応じて、センサ13から入力される前述の環境パラメータ情報と機器制御部313から通知される動作状態情報とを含む機器状態情報を生成して機器状態通知部315に通知する。機器状態通知部315は、機器状態情報生成部314から通知される機器状態情報を、前述の通信制御ユニット11との通信専用の通信路を介して通信制御ユニット11へ転送する。
図2に戻って、クラウドサーバ2は、CPU201と、主記憶部202と、補助記憶部203と、通信部206と、計時部207と、各部を接続するバス209と、を備える。CPU201は、例えばマルチコアプロセッサである。主記憶部202は、揮発性メモリであり、CPU201の作業領域として使用される。補助記憶部203は、不揮発性メモリを有し、ROM、ストレージとして機能し、クラウドサーバ2の各種機能を実現するためのプログラムを記憶する。通信部206は、広域ネットワークNW1およびBBR8を介して機器1と通信する。計時部207は、例えばソフトウェアタイマであり、前述の機器状態情報取得時期到来後の経過時間を計時する。
クラウドサーバ2では、CPU201が、補助記憶部203が記憶するプログラムを主記憶部202に読み込んで実行することにより、図3に示すように、カプセル化電文取得部211、電文種別判定部212、機器情報更新部213、状態取得部214、制御情報生成部215および送信制御部216として機能する。また、図2に示す補助記憶部203は、図3に示すように、機器情報記憶部231と、状態記憶部232と、を有する。機器情報記憶部231は、少なくとも、機器3をアプリケーション層で識別する識別番号情報、MACアドレス情報およびIPアドレス情報の組み合わせを、機器1の通信制御ユニット11のIPアドレス情報、MACアドレス情報に対応づけて記憶する。機器情報記憶部231は、例えば図4に示すように、局所ネットワークNW2に属する機器3のMACアドレス情報およびIPアレス情報を、機器1の通信制御ユニット11のIPアドレス情報、MACアドレス情報に対応付けて記憶する。また、機器情報記憶部231は、機器1の通信制御ユニット11のIPアドレス情報、MACアドレス情報毎に、機器3の種別を示す機種情報および前述の識別番号情報の組み合わせを、機器3または機器1の機器制御ユニット12のMACアドレス情報およびIPアドレス情報の組み合わせに対応づけて記憶している。図4に示す例では、IPアドレスが「192.168.32.100」であり、MACアドレスが「AA-BB-CC-DD-F1」である通信制御ユニット11を備える機器1が接続されていることを表している。図3に戻って、状態記憶部232は、機器3の状態を示す機器状態情報を、機器3のMACアドレス情報およびIPアドレス情報に対応づけて記憶する。
カプセル化電文取得部211は、通信制御ユニット11から送信される各種情報を取得すると、取得した各種情報を非カプセル化してヘッダ情報を解除することにより機器3のMACアドレス情報およびIPアドレス情報を含む機器電文を抽出する。そして、カプセル化電文取得部211は、抽出した機器電文を電文種別判定部212に通知する。
電文種別判定部212は、カプセル化電文取得部211から通知される機器電文が前述のネットワーク参加通知情報および機器状態情報のいずれであるかを判定する。ここで、電文種別判定部212は、機器電文がネットワーク参加通知情報であると判定すると、当該ネットワーク参加通知情報を機器情報更新部213に通知する。また、電文種別判定部212は、機器電文が機器状態情報であると判定すると、当該機器状態情報を状態取得部214に通知する。
機器情報更新部213は、電文種別判定部212から通知されるネットワーク参加通知情報に含まれる、機器3または機器制御ユニット12のIPアドレス情報、MACアドレス情報、機種情報および識別番号情報を、ネットワーク参加通知情報の送信元の機器1の通信制御ユニット11のIPアドレス情報、MACアドレス情報に対応づけて新たに機器情報記憶部231に記憶させる。
状態取得部214は、機器3に対して機器状態情報の送信を要求する機器状態要求情報を機器3へ送信することにより、機器3から送信される機器状態情報を取得する。具体的には、状態取得部214は、予め設定された機器状態取得時期が到来する毎に、機器状態要求情報を生成し、生成した機器状態要求情報を送信制御部216に通知する。そして、状態取得部214は、電文種別判定部212から機器状態情報が通知されると、通知された機器状態情報を用いて、状態記憶部232が記憶する機器状態情報を更新する。
制御情報生成部215は、状態記憶部232が記憶する機器状態情報を参照し、機器状態情報が示す機器3の状態に基づいて、機器3の制御内容の変更が必要な制御イベントが発生したか否かを判定する。そして、制御情報生成部215は、制御イベントが発生したと判定すると、機器3の制御内容を変更するための制御情報を生成し、生成した制御情報を送信制御部216に通知する。
送信制御部216は、状態取得部214、制御情報生成部215から各種情報が通知されると、通知された各種情報に応じて、送信先の機器1の通信制御ユニット11を特定する。ここで、送信制御部216は、機器情報記憶部231が記憶する制御情報の送信先の機器3のMACアドレス情報およびIPアドレス情報の組合せに対応づけられた通信制御ユニット11のIPアドレス情報、MACアドレス情報を特定する。そして、送信制御部216は、通知された各種情報をカプセル化して特定した通信制御ユニット11を送信先に指定するためのヘッダ情報を付加する。ここで、ヘッダ情報は、特定した通信制御ユニット11のIPアドレス情報およびMACアドレス情報を含む。
次に、本実施の形態に係る通信システムの動作について図5から図9を参照しながら説明する。まず、図5に示すように、利用者が機器1を新たに局所ネットワークNW2に接続して起動させたとする。この場合、機器1の通信制御ユニット11とクラウドサーバ2との間でコネクションを確立するための処理が実行され、通信制御ユニット11とクラウドサーバ2とが、互いのIPアドレス情報を取得した状態となる。そして、機器1が局所ネットワークNW2に新たに接続されたことを通知するネットワーク参加通知情報が、機器1の機器制御ユニット12から機器1の通信制御ユニット11へ専用の通信路を介して転送される(ステップS1)。
一方、機器1の通信制御ユニット11は、ネットワーク参加通知情報を取得すると、当該ネットワーク参加通知情報には送信元のIPアドレス情報、MACアドレス情報が含まれていないため、ネットワーク参加通知情報が送信元のIPアドレス情報、MACアドレス情報を含んでいないと判定する(ステップS2)。この場合、通信制御ユニット11は、ネットワーク参加通知情報に、通信制御ユニット11が管理するIPアドレス情報、MACアドレス情報、即ち、アドレス記憶部131が記憶する機器制御ユニット12のIPアドレス情報、MACアドレス情報を付加する(ステップS3)。次に、通信制御ユニット11は、アドレス記憶部131が記憶する、通信制御ユニット11のIPアドレス情報、MACアドレス情報を付加するとともにクラウドサーバ2を送信先に指定するためのヘッダ情報を付加するカプセル化処理を実行する(ステップS4)。続いて、カプセル化されたネットワーク参加通知情報が、機器1の通信制御ユニット11からクラウドサーバ2へ送信される(ステップS5)。一方、クラウドサーバ2は、機器1の通信制御ユニット11から送信されたネットワーク参加通知情報を取得すると、取得したネットワーク参加通知情報からクラウドサーバ2を送信先に指定するためのヘッダ情報を解除する非カプセル化処理を実行する(ステップS6)。その後、クラウドサーバ2は、機器制御ユニット12のMACアドレス情報、IPアドレス情報と、通信制御ユニット11のMACアドレス情報、IPアドレス情報とを抽出し、抽出した機器制御ユニット12のIPアドレス情報、MACアドレス情報を、通信制御ユニット11のIPアドレス情報、MACアドレス情報に対応づけて機器情報記憶部231に記憶させる(ステップS7)。
また、利用者が機器3を新たに局所ネットワークNW2に接続して起動させたとする。この場合、機器3が局所ネットワークNW2に新たに接続されたことを通知するネットワーク参加通知情報が、局所ネットワークNW2を介して、機器3から機器1の通信制御ユニット11へ送信される(ステップS8)。一方、機器1の通信制御ユニット11は、ネットワーク参加通知情報を取得すると、当該ネットワーク参加通知情報には送信元のIPアドレス情報、MACアドレス情報が含まれているため、ネットワーク参加通知情報が送信元のIPアドレス情報、MACアドレス情報を含んでいると判定する(ステップS9)。この場合、通信制御ユニット11は、ネットワーク参加通知情報に、そのまま、アドレス記憶部131が記憶する、通信制御ユニット11のIPアドレス情報、MACアドレス情報を付加する前述のカプセル化処理を実行する(ステップS10)。続いて、カプセル化されたネットワーク参加通知情報が、機器1の通信制御ユニット11からクラウドサーバ2へ送信される(ステップS11)。一方、図6に示すように、クラウドサーバ2は、機器1の通信制御ユニット11から送信されたネットワーク参加通知情報を取得すると、取得したネットワーク参加通知情報について前述の非カプセル化処理を実行する(ステップS12)。その後、クラウドサーバ2は、機器3のMACアドレス情報、IPアドレス情報と、機器1の通信制御ユニット11のMACアドレス情報、IPアドレス情報とを抽出し、抽出した機器3のIPアドレス情報、MACアドレス情報を、通信制御ユニット11のIPアドレス情報、MACアドレス情報に対応づけて機器情報記憶部231に記憶させる(ステップS13)。
次に、機器1についての動作状態情報および機器1の周囲の環境パラメータ情報を取得する予め設定された機器状態取得時期が到来したとする。この場合、クラウドサーバ2は、機器1の機器制御ユニット12に対して機器状態情報の送信を要求する機器状態要求情報を生成する(ステップS14)。続いて、クラウドサーバ2は、機器情報記憶部231が記憶する、機器状態要求情報の送信先の機器制御ユニット12のIPアドレス情報、MACアドレス情報に対応づけられた通信制御ユニット11のIPアドレス情報、MACアドレス情報を特定する。そして、クラウドサーバ2は、生成された機器状態要求情報に、特定したIPアドレス情報、MACアドレス情報を付加するとともに、通信制御ユニット11を送信先に指定するためのヘッダ情報を付加するカプセル化処理を実行する(ステップS15)。その後、カプセル化された機器状態要求情報が、クラウドサーバ2から機器1の通信制御ユニット11へ送信される(ステップS16)。一方、機器1の通信制御ユニット11は、クラウドサーバ2から送信された機器状態要求情報を取得すると、取得した機器状態要求情報から前述のヘッダ情報を解除する非カプセル化処理を実行する(ステップS17)。次に、通信制御ユニット11は、機器状態要求情報の送信先のIPアドレス情報、MACアドレス情報と、通信制御ユニット11が管理するIPアドレス情報、MACアドレス情報、即ち、アドレス記憶部131が記憶するIPアドレス情報、MACアドレス情報と、が一致と判定する(ステップS18)。この場合、機器状態要求情報は、通信制御ユニット11から機器1の機器制御ユニット12へ転送される(ステップS19)。
一方、機器制御ユニット12は、機器状態要求情報を取得すると、これに応じて、機器1の動作状態を示す動作状態情報と機器1の周囲の環境パラメータを示す環境パラメータ情報とを含む機器状態情報を生成する(ステップS20)。この機器状態情報には、送信先のIPアドレス情報、MACアドレス情報が含まれていない。続いて、生成された機器状態情報が、機器制御ユニット12から通信制御ユニット11へ転送される(ステップS21)。一方、通信制御ユニット11は、取得した機器状態情報に送信先のIPアドレス情報、MACアドレス情報が含まれていないと判定する(ステップS22)。この場合、図7に示すように、通信制御ユニット11は、機器状態情報に、通信制御ユニット11が管理するIPアドレス情報、MACアドレス情報、即ち、アドレス記憶部131が記憶する機器制御ユニット12のIPアドレス情報、MACアドレス情報を付加する(ステップS23)。その後、通信制御ユニット11は、アドレス記憶部131が記憶する、通信制御ユニット11のIPアドレス情報、MACアドレス情報を付加するとともにクラウドサーバ2を送信先に指定するためのヘッダ情報を付加するカプセル化処理を実行する(ステップS24)。次に、カプセル化された機器状態情報が、機器1の通信制御ユニット11からクラウドサーバ2へ送信される(ステップS25)。一方、クラウドサーバ2は、機器1の通信制御ユニット11から送信された機器状態情報を取得すると、取得した機器状態情報からクラウドサーバ2を送信先に指定するためのヘッダ情報を解除する非カプセル化処理を実行する(ステップS26)。続いて、クラウドサーバ2が、取得した機器状態情報を用いて、状態記憶部232が記憶する機器状態情報を更新する(ステップS27)。
また、機器3についての動作状態情報および機器3の周囲の環境パラメータ情報を取得する予め設定された機器状態取得時期が到来したとする。この場合、クラウドサーバ2は、機器3に対して機器状態情報の送信を要求する機器状態要求情報を生成する(ステップS28)。その後、クラウドサーバ2は、機器情報記憶部231が記憶する、機器状態要求情報の送信先の機器3のIPアドレス情報、MACアドレス情報に対応づけられた通信制御ユニット11のIPアドレス情報、MACアドレス情報を特定する。そして、クラウドサーバ2は、生成された機器状態要求情報に、特定したIPアドレス情報、MACアドレス情報を付加するとともに、通信制御ユニット11を送信先に指定するためのヘッダ情報を付加するカプセル化処理を実行する(ステップS29)。次に、カプセル化された機器状態要求情報が、クラウドサーバ2から機器1の通信制御ユニット11へ送信される(ステップS30)。一方、機器1の通信制御ユニット11は、クラウドサーバ2から送信された機器状態要求情報を取得すると、取得した機器状態要求情報から前述のヘッダ情報を解除する非カプセル化処理を実行する(ステップS31)。続いて、通信制御ユニット11は、機器状態要求情報の送信先のIPアドレス情報、MACアドレス情報と、通信制御ユニット11が管理するIPアドレス情報、MACアドレス情報、即ち、アドレス記憶部131が記憶するIPアドレス情報、MACアドレス情報と、が不一致と判定する(ステップS32)。この場合、機器状態要求情報は、通信制御ユニット11から機器3へ送信される(ステップS33)。
一方、機器3は、機器状態要求情報を取得すると、これに応じて、機器3の動作状態を示す動作状態情報と機器3の周囲の環境パラメータを示す環境パラメータ情報とを含む機器状態情報を生成する(ステップS34)。この機器状態情報には、送信先の通信制御ユニット11のIPアドレス情報、MACアドレス情報が含まれている。その後、図8に示すように、生成された機器状態情報が、機器3から機器1の通信制御ユニット11へ送信される(ステップS35)。一方、通信制御ユニット11は、取得した機器状態情報に送信先のIPアドレス情報、MACアドレス情報が含まれていると判定する(ステップS36)。この場合、通信制御ユニット11は、機器状態情報に、そのまま、アドレス記憶部131が記憶する、通信制御ユニット11のIPアドレス情報、MACアドレス情報を付加するとともにクラウドサーバ2を送信先に指定するためのヘッダ情報を付加するカプセル化処理を実行する(ステップS37)。続いて、カプセル化された機器状態情報が、機器1の通信制御ユニット11からクラウドサーバ2へ送信される(ステップS38)。一方、クラウドサーバ2は、機器1の通信制御ユニット11から送信された機器状態情報を取得すると、取得した機器状態情報からクラウドサーバ2を送信先に指定するためのヘッダ情報を解除する非カプセル化処理を実行する(ステップS39)。その後、クラウドサーバ2が、取得した機器状態情報を用いて、状態記憶部232が記憶する機器状態情報を更新する(ステップS40)。
また、機器1の制御内容を変更するための制御イベントが発生すると、クラウドサーバ2は、機器1の機器制御ユニット12の制御内容を変更するための制御情報を生成する(ステップS41)。次に、クラウドサーバ2は、機器情報記憶部231が記憶する、制御情報の送信先の機器1の機器制御ユニット12のIPアドレス情報、MACアドレス情報に対応づけられた通信制御ユニット11のIPアドレス情報、MACアドレス情報を参照して、制御情報の送信先の通信制御ユニット11のIPアドレス情報、MACアドレス情報を特定する。そして、クラウドサーバ2は、制御情報に、特定した通信制御ユニット11のIPアドレス情報、MACアドレス情報を付加するとともに、通信制御ユニット11を送信先に指定するためのヘッダ情報を付加するカプセル化処理を実行する(ステップS42)。続いて、カプセル化された制御情報が、クラウドサーバ2から機器1の通信制御ユニット11へ送信される(ステップS43)。一方、機器1の通信制御ユニット11は、クラウドサーバ2から送信された制御情報を取得すると、取得した制御情報から前述の通信制御ユニット11を送信先に指定するためのヘッダ情報を解除する非カプセル化処理を実行する(ステップS44)。その後、通信制御ユニット11は、制御情報の送信先のIPアドレス情報、MACアドレス情報と、通信制御ユニット11が管理するIPアドレス情報、MACアドレス情報、即ち、アドレス記憶部131が記憶するIPアドレス情報、MACアドレス情報と、が一致と判定する(ステップS45)。この場合、制御情報は、通信制御ユニット11から機器1の機器制御ユニット12へ転送される(ステップS46)。一方、図9に示すように、機器制御ユニット12は、制御情報を取得すると、取得した制御情報に基づいて動作する(ステップS47)。
また、機器3の制御内容を変更するための制御イベントが発生すると、クラウドサーバ2は、機器3の制御内容を変更するための制御情報を生成する(ステップS48)。次に、クラウドサーバ2は、機器情報記憶部231が記憶する、制御情報の送信先の機器3のIPアドレス情報、MACアドレス情報に対応づけられた通信制御ユニット11のIPアドレス情報、MACアドレス情報を参照して、制御情報の送信先の通信制御ユニット11のIPアドレス情報、MACアドレス情報を特定する。そして、クラウドサーバ2は、制御情報に、特定した通信制御ユニット11のIPアドレス情報、MACアドレス情報を付加するとともに、通信制御ユニット11を送信先に指定するためのヘッダ情報を付加するカプセル化処理を実行する(ステップS49)。続いて、カプセル化された制御情報が、クラウドサーバ2から機器1の通信制御ユニット11へ送信される(ステップS50)。一方、通信制御ユニット11は、クラウドサーバ2から送信された制御情報を取得すると、取得した制御情報から前述の通信制御ユニット11を送信先に指定するためのヘッダ情報を解除する非カプセル化処理を実行する(ステップS51)。その後、通信制御ユニット11は、制御情報の送信先のIPアドレス情報、MACアドレス情報と、通信制御ユニット11が管理するIPアドレス情報、MACアドレス情報、即ち、アドレス記憶部131が記憶するIPアドレス情報、MACアドレス情報と、が不一致と判定する(ステップS52)。この場合、制御情報は、通信制御ユニット11から機器3へ送信される(ステップS53)。一方、機器3は、制御情報を取得すると、取得した制御情報に基づいて動作する(ステップS54)。
次に、本実施の形態に係る機器1の通信制御ユニット11が実行する通信制御処理について図10を参照しながら説明する。この通信制御処理は、例えば機器1へ電源が投入され、通信制御ユニット11とクラウドサーバ2とのコネクションが確立されたことを契機として開始される。まず、電文取得部111は、機器3から送信されたネットワーク参加通知情報または機器状態情報、機器制御ユニット12から転送されたネットワーク参加通知情報または機器状態情報を取得したか否かを判定する(ステップS101)。電文取得部111が、ネットワーク参加通知情報および機器状態情報を取得していないと判定すると(ステップS101:No)、後述するステップS105の処理が実行される。一方、電文取得部111が、ネットワーク参加通知情報または機器状態情報を取得したと判定すると(ステップS101:Yes)、取得したネットワーク参加通知情報または機器状態情報を送信制御部112に通知する。そして、送信制御部112は、電文取得部111から通知されるネットワーク参加通知情報または機器状態情報に、送信元のMACアドレス情報、IPアドレス情報が含まれるか否かを判定する(ステップS102)。ここで、送信制御部112は、通知されたネットワーク参加通知情報または機器状態情報に、送信元のMACアドレス情報、IPアドレス情報が含まれると判定すると(ステップS102:Yes)、そのまま後述のステップS104の処理が実行される。一方、送信制御部112は、電文取得部111から通知される機器電文に、送信元のMACアドレス情報、IPアドレス情報が含まれていないと判定すると(ステップS102:No)、機器電文に、通信制御ユニット11が管理する機器制御ユニット12のIPアドレス情報、MACアドレス情報、即ち、アドレス記憶部131が記憶する、機器制御ユニット12のIPアドレス情報、MACアドレス情報を、機器電文の送信元のIPアドレス情報およびMACアドレス情報として付加する(ステップS103)。次に、送信制御部112は、アドレス記憶部131が記憶する、通信制御ユニットのIPアドレス情報、MACアドレス情報を付加するとともに、クラウドサーバ2を送信先に指定するためのヘッダ情報を付加するカプセル化処理を実行する。そして、送信制御部112は、カプセル化された機器電文をクラウドサーバ2へ送信する(ステップS104)。
続いて、カプセル化電文取得部113は、クラウドサーバ2から機器1の通信制御ユニット11を送信先とするカプセル化された機器状態要求情報または制御情報を取得したか否かを判定する(ステップS105)。カプセル化電文取得部113が、クラウドサーバ2から送信された機器状態要求情報および制御情報のいずれも取得していないと判定すると(ステップS105:No)、再びステップS101の処理が実行される。一方、カプセル化電文取得部113は、クラウドサーバ2から送信された機器状態要求情報または制御情報を取得したと判定すると(ステップS105:Yes)、機器状態要求情報または制御情報から通信制御ユニット11を送信先に指定するためのヘッダ情報を解除する非カプセル化処理を実行する(ステップS106)。その後、送信先判定部114は、機器状態要求情報または制御情報の送信先のIPアドレス情報、MACアドレス情報が、通信制御ユニット11が管理する機器制御ユニット12のIPアドレス情報、MACアドレス情報、即ち、アドレス記憶部131が記憶する、機器制御ユニット12のIPアドレス情報、MACアドレス情報と一致するか否かを判定する(ステップS107)。ここで、電文通知部116は、機器状態要求情報または制御情報の送信先のIPアドレス情報、MACアドレス情報が、アドレス記憶部131が記憶する、機器制御ユニット12のIPアドレス情報、MACアドレス情報と一致すると判定されると(ステップS107:Yes)、機器状態要求情報または制御情報を機器制御ユニット12へ転送する(ステップS108)。次に、再びステップS101の処理が実行される。一方、電文送信部115は、機器状態要求情報または制御情報の送信先のIPアドレス情報、MACアドレス情報が、アドレス記憶部131が記憶する、機器制御ユニット12のIPアドレス情報、MACアドレス情報と不一致と判定されると(ステップS107:No)、当該IPアドレス情報、MACアドレス情報に基づいて、機器状態要求情報または制御情報を他の機器3へ送信する(ステップS109)。続いて、再びステップS101の処理が実行される。
以上説明したように、本実施の形態に係る機器1によれば、機器1の動作を制御しつつ、他の機器3で生成され当該他の機器3から送信される機器電文、または、機器1の機器制御ユニット12で生成された機器電文を、広域ネットワークNW1を介してクラウドサーバ2へ送信することができるので、機器3または機器1の機器制御ユニット12で生成された機器電文を、広域ネットワークNW1を介してクラウドサーバ2へ送信するための装置が不要となるので、その分、利用者の設置負担が軽減される。
また、本実施の形態に係る機器1では、送信先判定部114が、クラウドサーバ2から送信される機器電文に含まれる機器電文の送信先のIPアドレス情報、MACアドレス情報が、アドレス記憶部131が記憶する通信制御ユニット11のIPアドレス情報、MACアドレス情報と一致するか否かを判定する。そして、電文通知部116が、機器電文の送信先のIPアドレス情報、MACアドレス情報が、アドレス記憶部131が記憶する通信制御ユニット11のIPアドレス情報、MACアドレス情報と一致すると判定されると、機器電文を機器制御ユニット12へ転送する。また、電文送信部115が、機器電文の送信先のIPアドレス情報、MACアドレス情報が、アドレス記憶部131が記憶する通信制御ユニット11のIPアドレス情報、MACアドレス情報と不一致と判定されると、機器電文を他の機器3へ送信する。これにより、機器電文が適切に機器1の機器制御ユニット12へ転送されるとともに、他の機器3へ送信される。
更に、本実施の形態に係る機器1では、送信制御部112は、他の機器3で生成され局所ネットワークNW2を介して機器電文を取得した場合、機器電文をそのままカプセル化してからクラウドサーバ2へ送信する。一方、送信制御部112は、機器制御ユニット12で生成され、機器制御ユニット12との専用の通信路を介して機器電文を取得した場合、機器電文にアドレス記憶部131が記憶する機器制御ユニット12のIPアドレス情報、MACアドレス情報を付加してからカプセル化してクラウドサーバ2へ送信する。これにより、機器制御ユニット12で生成された機器電文を適切にクラウドサーバ2へ送信される。
以上、本開示の実施の形態について説明したが、本開示は前述の実施の形態によって限定されるものではない。例えば、局所ネットワークNW2が、有線LANであり、図11に示すように、機器2001の通信制御ユニット2011と機器制御ユニット2012とが、共通の1つのLANポートp1を介して局所ネットワークNW2に接続されているものであってもよい。なお、図11において、実施の形態と同様の構成については図2と同一の符号を付している。ここで、機器2001は、通信制御ユニット2011が、機器制御ユニット2012との間で通信するための内部通信インタフェースを備えていない点、機器制御ユニット2012が、LANポートp1を介して局所ネットワークNW2に直接接続された通信部2106Bを備える点で実施の形態に係る機器1と相違する。
通信制御ユニット2011は、図12に示すように、電文取得部2111、送信制御部2112、カプセル化電文取得部113および電文送信部2115を有する。なお、図12において、実施の形態と同様の構成については図3と同一の符号を付している。また、図12に示す補助記憶部103Aは、図13に示すように、通信制御ユニット11に付与されたIPアドレスを示すIPアドレス情報および通信制御ユニット11に固有のMACアドレスを示すMACアドレス情報と、を記憶するアドレス記憶部2131を有する。電文取得部2111は、機器3から送信される機器電文、または、機器制御ユニット2012から送信される機器電文を取得し、取得した機器電文を送信制御部2112に通知する。送信制御部2112は、電文取得部2111から通知される機器電文に、そのまま、アドレス記憶部2131が記憶する、通信制御ユニット2011のIPアドレス情報、MACアドレス情報を付加するとともに、クラウドサーバ2を送信先に指定するためのヘッダ情報を付加するカプセル化処理を実行する。そして、送信制御部2112は、カプセル化された機器電文をクラウドサーバ2へ送信する。カプセル化電文取得部113は、クラウドサーバ2から機器2001の通信制御ユニット2011を送信先とする各種情報を取得すると、取得した情報からヘッダ情報を解除する非カプセル化を行ってから各種情報を電文送信部2115に通知する。電文送信部2115は、カプセル化電文取得部113から通知される機器電文を、当該機器電文に含まれるIPアドレス情報、MACアドレス情報に基づいて、機器制御ユニット2012または他の機器3へ送信する。
また、機器制御ユニット2012では、電文取得部311、機器情報通知部312、機器制御部313、機器状態情報生成部314および機器状態通知部2315を有する。機器状態通知部2315は、機器状態情報生成部314から通知される機器状態情報を、局所ネットワークNW2を介して通信制御ユニット2011へ送信する。
本構成によれば、例えば通信制御ユニット2011に障害が発生した場合でも、機器制御ユニット12と他の機器3またはBBR8との間での通信を継続することができるという利点がある。
実施の形態において、例えば図13に示す機器3001のように、通信制御ユニット3011が、機器情報通知部3116と、機器情報記憶部3132と、を有し、機器制御ユニット3012が、これらを有さないものであってもよい。ここで、機器情報通知部3116は、機器3001が初めて局所ネットワークNW2に接続されると、機器情報記憶部3132が記憶する、機器制御ユニット3012のIPアドレス情報、MACアドレス情報等を含むネットワーク参加通知情報を生成して送信制御部112に通知する。そして、送信制御部112は、通知されたネットワーク参加通知情報に、アドレス記憶部131が記憶する、機器制御ユニット3012のIPアドレス情報、MACアドレス情報を、ネットワーク参加通知情報の送信元のIPアドレス情報およびMACアドレス情報として付加してから前述のカプセル化処理を実行する。そして、送信制御部112は、カプセル化されたネットワーク参加通知情報をクラウドサーバ2へ送信する。
本構成によれば、機器制御ユニット3012の機能構成を簡素化することができ、機器制御ユニット3012の処理負担を低減できる。
実施の形態では、アドレス記憶部131が、機器制御ユニット12のIPアドレス情報とMACアドレス情報との両方を記憶している例について説明した。但し、これに限らず、アドレス記憶部131が、機器制御ユニット12のIPアドレス情報とMACアドレス情報とのいずれか一方を記憶するものであってもよい。この場合、送信制御部112は、電文取得部111から通知される機器電文に、送信元のMACアドレス情報とIPアドレス情報とのいずれか一方が含まれるか否かを判定するようにすればよい。また、送信先判定部114は、クラウドサーバ2から送信される機器電文に含まれる機器電文の送信先のIPアドレス情報とMACアドレス情報とのいずれか一方が、アドレス記憶部131が記憶する、機器制御ユニット12のIPアドレス情報とMACアドレス情報とのいずれか一方と一致するか否かを判定するようにすればよい。
実施の形態では、機器情報記憶部231が、機器3のIPアドレス情報およびMACアドレス情報と機器3に固有の識別番号情報とを互いに対応づけて記憶する例について説明した。但し、これに限らず、機器情報記憶部231が、機器3のIPアドレス情報およびMACアドレス情報と機器3の型名を示す型名情報、機器3の製造番号を示す製造番号情報等とを互いに対応づけて記憶するものであってもよい。
実施の形態では、機器1が、各別のハードウェアから構成される通信制御ユニット11、機器制御ユニット12を備える例について説明した。但し、これに限らず、機器1が、CPU、主記憶部、補助記憶部、通信部を1つずつ備え、通信制御ユニット11、機器制御ユニット12それぞれが各別の仮想マシンとして実現されているものであってもよい。この場合、内部通信インタフェースは、仮想的な内部通信インタフェースとして実現すればよい。
また、本開示に係る機器1、クラウドサーバ2の各種機能は、ソフトウェア、ファームウェア、またはソフトウェアとファームウェアとの組み合わせにより実現されてもよい。この場合、ソフトウェアまたはファームウェアは、プログラムとして記述され、プログラムを、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)、MO(Magneto-Optical Disc)、フラッシュメモリ等コンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムをコンピュータに読み込んでインストールすることにより、前述の各機能を実現することができるコンピュータを構成してもよい。そして、各機能をOS(Operating System)とアプリケーションとの分担、またはOSとアプリケーションとの協働により実現する場合には、OS以外の部分のみを記録媒体に格納してもよい。
さらに、搬送波に各プログラムを重畳し、通信ネットワークを介して配信することも可能である。例えば、通信ネットワーク上の掲示板(BBS,Bulletin Board System)に当該プログラムを掲示し、ネットワークを介して当該プログラムを配信してもよい。そして、これらのプログラムを起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、前述の処理を実行できるようにしてもよい。
本開示は、本開示の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、本開示を説明するためのものであり、本開示の範囲を限定するものではない。つまり、本開示の範囲は、実施の形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の開示の意義の範囲内で施される様々な変形が、本開示の範囲内とみなされる。