【文献】
富士通認定プロフェッショナル(FCP)ITアーキテクト(ネットワーク),ネットワークトラブル完全ガイド 第1版,日経BP社 吉田 琢也,2017年 4月24日,第1版,第111-114頁
(58)【調査した分野】(Int.Cl.,DB名)
ローカルネットワークの配下にある対象機器と、前記ローカルネットワークの外部にある制御装置とを含み、前記対象機器と前記制御装置とが前記ローカルネットワークで使用される内部IPアドレスおよび内部ポート番号と前記ローカルネットワークの外部で使用される外部IPアドレスおよび外部IPポート番号との変換を行うネットワークアドレス変換装置を介して通信を行う制御システムであって、
前記制御装置は、
前記対象機器から前記ネットワークアドレス変換装置を介して所定の通知情報を受信する通信部と、
前記通信部が受信した通知情報の送信元情報に含まれる外部IPアドレスおよび外部IPポート番号を取得する管理部と、
前記対象機器を制御する制御命令に、前記管理部が取得した外部IPアドレスおよび外部IPポート番号を宛先情報として設定し、当該宛先情報が設定された制御命令を、前記ネットワークアドレス変換装置を介して前記対象機器に送信する送信制御部と、を有し、
前記対象機器は、
前記制御装置から前記ネットワークアドレス変換装置を介して前記制御命令を受信する受信部と、
前記通知情報を前記ネットワークアドレス変換装置を介して前記制御装置に送信し、前記受信部が受信した制御命令に従って当該対象機器を制御する制御部と、を有し、
前記制御装置は、前記通信部および前記管理部を有する管理装置と、前記送信制御部を有する指示装置とを含み、
前記管理装置は、前記管理部が取得した外部IPアドレスおよび外部IPポート番号を記憶する記憶部をさらに有し、
前記指示装置は、前記制御命令を受け付ける入力部をさらに有し、
前記送信制御部は、前記記憶部から前記外部IPアドレスおよび前記外部IPポート番号を取得し、前記入力部が受け付けた制御命令に前記取得した外部IPアドレスおよび外部IPポート番号を宛先情報として設定する、制御システム。
ローカルネットワークの配下にある対象機器と、前記ローカルネットワークの外部にある制御装置とを含み、前記対象機器と前記制御装置とが前記ローカルネットワークで使用される内部IPアドレスおよび内部ポート番号と前記ローカルネットワークの外部で使用される外部IPアドレスおよび外部IPポート番号との変換を行うネットワークアドレス変換装置を介して通信を行う制御システムであって、
前記制御装置は、
前記対象機器から前記ネットワークアドレス変換装置を介して所定の通知情報を受信する通信部と、
前記通信部が受信した通知情報の送信元情報に含まれる外部IPアドレスおよび外部IPポート番号を取得する管理部と、
前記対象機器を制御する制御命令に、前記管理部が取得した外部IPアドレスおよび外部IPポート番号を宛先情報として設定し、当該宛先情報が設定された制御命令を、前記ネットワークアドレス変換装置を介して前記対象機器に送信する送信制御部と、を有し、
前記対象機器は、
前記制御装置から前記ネットワークアドレス変換装置を介して前記制御命令を受信する受信部と、
前記通知情報を前記ネットワークアドレス変換装置を介して前記制御装置に送信し、前記受信部が受信した制御命令に従って当該対象機器を制御する制御部と、を有し、
前記制御部は、前記通知情報として認証キーの取得を要求するキー取得要求を送信し、
前記管理部は、前記通信部が前記キー取得要求を受信した場合、前記認証キーを生成して登録キーとして前記対象機器に送信し、
前記送信制御部は、前記制御命令の送信時に、当該制御命令と共に前記認証キーを確認キーとして送信し、
前記受信部は、前記登録キーと前記確認キーとをさらに受信し、
前記制御部は、前記登録キーと前記確認キーとが互いに一致する場合、前記制御命令に従って当該対象機器を制御する、制御システム。
ローカルネットワークの配下にある対象機器と、前記ローカルネットワークの外部にある制御装置とを含み、前記対象機器と前記制御装置とが前記ローカルネットワークで使用される内部IPアドレスおよび内部ポート番号と前記ローカルネットワークの外部で使用される外部IPアドレスおよび外部IPポート番号との変換を行うネットワークアドレス変換装置を介して通信を行う制御システムであって、
前記制御装置は、
前記対象機器から前記ネットワークアドレス変換装置を介して所定の通知情報を受信する通信部と、
前記通信部が受信した通知情報の送信元情報に含まれる外部IPアドレスおよび外部IPポート番号を取得する管理部と、
前記対象機器を制御する制御命令に、前記管理部が取得した外部IPアドレスおよび外部IPポート番号を宛先情報として設定し、当該宛先情報が設定された制御命令を、前記ネットワークアドレス変換装置を介して前記対象機器に送信する送信制御部と、を有し、
前記対象機器は、
前記制御装置から前記ネットワークアドレス変換装置を介して前記制御命令を受信する受信部と、
前記通知情報を前記ネットワークアドレス変換装置を介して前記制御装置に送信し、前記受信部が受信した制御命令に従って当該対象機器を制御する制御部と、を有し、
前記管理部は、前記取得した外部IPアドレスおよび外部IPポート番号を宛先情報として設定した確認信号を、前記ネットワークアドレス変換装置を介して前記対象機器に送信し、
前記受信部は、前記制御装置から前記ネットワークアドレス変換装置を介して確認信号を受信し、
前記制御部は、前記受信部が前記確認信号を受信した場合、前記確認信号に対する応答信号を前記ネットワークアドレス変換装置を介して前記制御装置に送信し、
前記通信部は、前記対象機器から前記ネットワークアドレス変換装置を介して前記応答信号を受信し、
前記送信制御部は、前記通信部が前記応答信号を受信した場合、前記制御命令を送信する、制御システム。
ローカルネットワークの配下にある対象機器と、前記ローカルネットワークの外部にある制御装置とを含み、前記対象機器と前記制御装置とが前記ローカルネットワークで使用される内部IPアドレスおよび内部ポート番号と前記ローカルネットワークの外部で使用される外部IPアドレスおよび外部IPポート番号との変換を行うネットワークアドレス変換装置を介して通信を行う制御システムであって、
前記制御装置は、
前記対象機器から前記ネットワークアドレス変換装置を介して所定の通知情報を受信する通信部と、
前記通信部が受信した通知情報の送信元情報に含まれる外部IPアドレスおよび外部IPポート番号を取得する管理部と、
前記対象機器を制御する制御命令に、前記管理部が取得した外部IPアドレスおよび外部IPポート番号を宛先情報として設定し、当該宛先情報が設定された制御命令を、前記ネットワークアドレス変換装置を介して前記対象機器に送信する送信制御部と、を有し、
前記対象機器は、
前記制御装置から前記ネットワークアドレス変換装置を介して前記制御命令を受信する受信部と、
前記通知情報を前記ネットワークアドレス変換装置を介して前記制御装置に送信し、前記受信部が受信した制御命令に従って当該対象機器を制御する制御部と、を有し、
前記制御部は、前記通知情報を繰り返し送信し、
前記送信制御部は、前記制御命令に、前記管理部が取得した最新の前記外部IPアドレスおよび前記外部IPポート番号を宛先情報として設定する、制御システム。
ローカルネットワークの配下にある対象機器と、前記ローカルネットワークの外部にある制御装置とを含み、前記対象機器と前記制御装置とが前記ローカルネットワークで使用される内部IPアドレスおよび内部ポート番号と前記ローカルネットワークの外部で使用される外部IPアドレスおよび外部IPポート番号との変換を行うネットワークアドレス変換装置を介して通信を行う制御システムの制御方法であって、
前記対象機器が、所定の通知情報を前記ネットワークアドレス変換装置を介して前記制御装置に送信するステップと、
前記制御装置が、前記通知情報を受信するステップと、
前記制御装置が、前記受信された通知情報の送信元情報に含まれる外部IPアドレスおよび外部IPポート番号を取得するステップと、
前記制御装置が、取得した外部IPアドレスおよび外部IPポート番号を記憶部に記憶するステップと、
前記制御装置が、前記対象機器を制御する制御命令を入力部に受け付けるステップと、
前記制御装置が、前記記憶部から前記外部IPアドレスおよび前記外部IPポート番号を取得し、前記入力部が受け付けた制御命令に、前記記憶部から取得した外部IPアドレスおよび外部IPポート番号を宛先情報として設定し、当該宛先情報が設定された制御命令を、前記ネットワークアドレス変換装置を介して前記対象機器に送信するステップと、
前記対象機器が、前記制御装置から前記制御命令を受信するステップと、
前記対象機器が、前記受信された制御命令に従って当該対象機器を制御するステップと、
を有する制御方法。
ローカルネットワークの配下にある対象機器と、前記ローカルネットワークの外部にある制御装置とを含み、前記対象機器と前記制御装置とが前記ローカルネットワークで使用される内部IPアドレスおよび内部ポート番号と前記ローカルネットワークの外部で使用される外部IPアドレスおよび外部IPポート番号との変換を行うネットワークアドレス変換装置を介して通信を行う制御システムの制御方法であって、
前記対象機器が、所定の通知情報として、認証キーの取得を要求するキー取得要求を前記ネットワークアドレス変換装置を介して前記制御装置に送信するステップと、
前記制御装置が、前記通知情報を受信するステップと、
前記制御装置が、前記通知情報であるキー取得要求を受信した場合、前記認証キーを生成して登録キーとして前記対象機器に送信するステップと、
前記対象機器が、前記登録キーを受信するステップと、
前記制御装置が、前記受信された通知情報の送信元情報に含まれる外部IPアドレスおよび外部IPポート番号を取得するステップと、
前記制御装置が、前記対象機器を制御する制御命令に、前記取得され外部IPアドレスおよび外部IPポート番号を宛先情報として設定し、当該宛先情報が設定された制御命令と共に前記認証キーを確認キーとして、前記ネットワークアドレス変換装置を介して前記対象機器に送信するステップと、
前記対象機器が、前記制御装置から前記制御命令と前記確認キーとを受信するステップと、
前記対象機器が、前記登録キーと前記確認キーとが互いに一致する場合、前記受信された制御命令に従って当該対象機器を制御するステップと、を有する制御方法。
ローカルネットワークの配下にある対象機器と、前記ローカルネットワークの外部にある制御装置とを含み、前記対象機器と前記制御装置とが前記ローカルネットワークで使用される内部IPアドレスおよび内部ポート番号と前記ローカルネットワークの外部で使用される外部IPアドレスおよび外部IPポート番号との変換を行うネットワークアドレス変換装置を介して通信を行う制御システムの制御方法であって、
前記対象機器が、所定の通知情報を前記ネットワークアドレス変換装置を介して前記制御装置に送信するステップと、
前記制御装置が、前記通知情報を受信するステップと、
前記制御装置が、前記受信された通知情報の送信元情報に含まれる外部IPアドレスおよび外部IPポート番号を取得するステップと、
前記制御装置が、前記取得した外部IPアドレスおよび外部IPポート番号を宛先情報として設定した確認信号を、前記ネットワークアドレス変換装置を介して前記対象機器に送信するステップと、
前記対象機器が、前記制御装置から前記ネットワークアドレス変換装置を介して確認信号を受信するステップと、
前記対象機器が、前記確認信号を受信した場合、前記確認信号に対する応答信号を前記ネットワークアドレス変換装置を介して前記制御装置に送信するステップと、
前記制御装置が、前記対象機器から前記ネットワークアドレス変換装置を介して前記応答信号を受信するステップと、
前記制御装置が、前記応答信号を受信した場合、前記対象機器を制御する制御命令に、前記取得され外部IPアドレスおよび外部IPポート番号を宛先情報として設定し、当該宛先情報が設定された制御命令を、前記ネットワークアドレス変換装置を介して前記対象機器に送信するステップと、
前記対象機器が、前記制御装置から前記制御命令を受信するステップと、
前記対象機器が、前記受信された制御命令に従って当該対象機器を制御するステップと、を有する制御方法。
ローカルネットワークの配下にある対象機器と、前記ローカルネットワークの外部にある制御装置とを含み、前記対象機器と前記制御装置とが前記ローカルネットワークで使用される内部IPアドレスおよび内部ポート番号と前記ローカルネットワークの外部で使用される外部IPアドレスおよび外部IPポート番号との変換を行うネットワークアドレス変換装置を介して通信を行う制御システムの制御方法であって、
前記対象機器が、所定の通知情報を前記ネットワークアドレス変換装置を介して前記制御装置に繰り返し送信するステップと、
前記制御装置が、前記通知情報を受信するステップと、
前記制御装置が、前記受信された通知情報の送信元情報に含まれる外部IPアドレスおよび外部IPポート番号を取得するステップと、
前記制御装置が、前記対象機器を制御する制御命令に、前記取得された最新の外部IPアドレスおよび外部IPポート番号を宛先情報として設定し、当該宛先情報が設定された制御命令を、前記ネットワークアドレス変換装置を介して前記対象機器に送信するステップと、
前記対象機器が、前記制御装置から前記制御命令を受信するステップと、
前記対象機器が、前記受信された制御命令に従って当該対象機器を制御するステップと、を有する制御方法。
【発明を実施するための形態】
【0011】
以下、本発明の実施形態について図面を参照して説明する。なお、各図面において同じ機能を有するものには同じ符号を付け、その説明を省略する場合がある。
【0012】
(第1の実施形態)
(制御システムの構成)
図1は、本発明の第1の実施形態の制御システムを示す図である。
図1に示すように制御システム1は、IoT機器10と、指示装置20と、サーバ30とを有する。IoT機器10とサーバ30とは、NAT(Network Address Translation:ネットワークアドレス変換)装置40、ローカルネットワーク50およびインターネット60を介して相互に接続可能である。指示装置20とサーバ30とは、インターネット60を介して相互に接続可能である。ローカルネットワーク50は、本実施形態では、例えば、ISP(Internet Service Provider:インターネットサービスプロバイダ)などの電気通信事業者が、管理するネットワークである。当然ながら、IoT機器10からNAT装置40に接続するまでのネットワークであれば、電気通信事業者で管理するネットワーク以外のネットワークを含んでもよい。また、ローカルネットワーク50は、特定のエリア内や企業内、家庭内のLAN(Local Area Network:ローカルエリアネットワーク)などでもよい。また、インターネット60は、NAT装置40からインターネット60までに接続されるネットワークを含んでもよい。
【0013】
IoT機器10は、外部からの制御を受け付ける対象機器であり、ローカルネットワーク50の配下にある。IoT機器10は、具体的には、例えば、家電のような電化製品、監視カメラなどのセキュリティ機器、温度センサーなどのセンサー機器などである。本実施形態では、IoT機器10は、表示部や操作部などのインタフェースによる制約のために複雑な操作が難しい機器や、監視カメラのような遠隔操作が必要な機器である。IoT機器10は、図では1つだけ示されているが、複数あってもよい。
【0014】
指示装置20およびサーバ30は、IoT機器10を制御(遠隔操作)する制御装置を構成する。指示装置20およびサーバ30は、ローカルネットワーク50の外部に設けられる。指示装置20は、IoT機器10を制御するオペレータ(ユーザ)にて使用されるユーザ装置である。指示装置20は、例えば、PC(personal computer)、スマートフォン、スマートTVまたはゲーム機などである。サーバ30は、IoT機器10や指示装置20を管理し、指示装置20と共同してIoT機器10を制御する管理装置である。
【0015】
NAT装置40は、本実施形態では、例えば、ISPなどの電気通信事業者にて管理されるキャリアグレードNAT(Carrier Grade NAT)装置である。NAT装置40は、ローカルネットワーク50で使用される内部IPアドレス(例えば、NAT装置40がキャリアグレードNATの場合、シェアードアドレス(Shared Address)である。また、ローカルIPアドレスまたはプライベートIPアドレスと呼ばれるアドレスでもよい)および内部ポート番号と、インターネット60で使用する外部IPアドレス(例えば、グローバルIPアドレス)および外部ポート番号との変換を行う。なお、NAT装置40の機能は、既知である。NAT装置40は、無線LANルータなどのルータ装置やファイアウォール装置などに備わる一機能にて実現されてもよい。
【0016】
具体的には、NAT装置40は、ローカルネットワーク50の配下にある機器から信号を受信すると、その信号の送信元情報に含まれる内部IPアドレスおよび内部ポート番号を外部IPアドレスおよび外部ポート番号に変換し、その変換前の内部IPアドレスおよび内部ポート番号と変換後の外部IPアドレスおよび外部ポート番号とを対応付けたレコードをNATテーブルに加えて記憶する。また、NAT装置40は、ローカルネットワーク50の外部にある機器から信号を受信すると、その信号の宛先情報に含まれる外部IPアドレスおよび外部ポート番号を、NATテーブルにおいてその外部IPアドレスおよび外部ポート番号と対応付けられた内部IPアドレスおよび内部ポート番号に変換する。
【0017】
ローカルネットワーク50は、例えば、アクセス網やモバイル網などの内部ネットワークである。インターネット60は、グローバルな外部ネットワークである。
【0018】
(IoT機器の構成)
図2は、IoT機器10の構成を示すブロック図である。IoT機器10は、機器記憶部11と、機器通信部12と、制御部13とを有する。
【0019】
機器記憶部11は、IoT機器10を識別する識別情報である端末識別IDと、後述する通知情報の通知先を示す通知先情報と、IoT機器10に割り当てられた内部IPアドレスおよび内部ポート番号とを記憶する。機器記憶部11は、さらにIoT機器10を認証するための端末認証情報を記憶してもよい。
【0020】
端末識別IDは、製品番号のようなIoT機器10のハードウェアに対して付与されたものでもよいし、MAC(Media Access Control)アドレスやSIM(Subscriber Identity Module)カード(図示せず)に登録されている固有番号のような通信で使用されるものでもよい。また、端末識別IDは、制御システム1用に独自に導入されたものでもよい。端末認証情報は、サーバ30でIoT機器10を認証するための情報であり、例えば、秘密鍵やパスワードなどである。
【0021】
通知先情報は、本実施形態では、通知情報の通知先としてインターネット60上のサーバ30の位置を示す。通知先情報は、例えば、サーバ30のIPアドレス、ホスト名またはURL(Uniform Resource Locator)などである。IoT機器10が複数ある場合、通知先は、複数のIoT機器10に共通でもよいし、IoT機器10ごとに異なっていてもよい。
【0022】
機器通信部12は、NAT装置40、ローカルネットワーク50およびインターネット60を介してサーバ30と通信する。例えば、機器通信部12は、サーバ30からIoT機器10を制御する制御命令を受信する受信部として機能する。
【0023】
制御部13は、IoT機器10全体を制御する。例えば、機器通信部12が制御命令を受信した場合、制御部13は、その制御命令に従ってIoT機器10を制御する。
【0024】
また、制御部13は、機器記憶部11に記憶された通知先情報に示される通知先であるサーバ30に対して、所定の通知情報を送信する。通知情報は、IoT機器10の位置を通知するため情報であり、機器記憶部11に記憶された端末識別IDおよび端末認証情報を含む。本実施形態では、制御部13は、通知情報を繰り返し送信し、その通知情報を送信する送信間隔は、例えば、1分〜5分程度の固定値に予め設定されている。
【0025】
なお、制御部13は、NAT装置40、ローカルネットワーク50およびインターネット60を介して通知情報をサーバ30に送信する。このとき、通知情報の送信元情報は、機器記憶部11に記憶された内部IPアドレスおよび内部ポート番号を含む。送信元情報に含まれる内部IPアドレスおよび内部ポート番号は、上述したようにNAT装置40にて外部IPアドレスおよび外部ポート番号に変換される。そして、NAT装置40にて、変換前の内部IPアドレスおよび内部ポート番号と変換後の外部IPアドレスと外部ポート番号とが対応付けられてNATテーブルに追加される。このようなNAT装置40による処理は、通知情報だけでなく、IoT機器10からサーバ30に送信される情報(信号やデータを含む)に対して共通であるため、以下では、その説明を省略する場合がある。
【0026】
(指示装置20の構成)
図3は、指示装置20の構成を示すブロック図である。
図3に示す指示装置20は、指示通信部21と、表示部22と、入力部23と、指示制御部24とを有する。
【0027】
指示通信部21は、インターネット60を介してサーバ30と通信する。例えば、指示通信部21は、サーバ30から、所定の情報の入力(送信)をオペレータに要求する入力画面を示す入力要求を受信する。入力要求は、例えば、オペレータを認証するためのオペレータ認証情報の入力を要求する認証入力画面を示す認証入力要求と、制御するIoT機器10を識別する端末識別IDの入力を要求する識別入力画面を示す識別入力要求と、制御命令の入力を要求する命令入力画面を示す命令入力要求などである。
【0028】
オペレータ認証情報は、サーバ30でオペレータを認証するための情報であり、例えば、秘密鍵やパスワードなどである。識別入力画面は、オペレータにて制御可能なIoT機器10を識別する端末識別IDのリストであるIoT機器リストを含む。命令入力画面は、本実施形態では、IoT機器10にて対応可能な制御命令のリストである命令リストを含む。ただし、命令入力画面は、命令リストの代わりに、IoT機器10に対する制御命令を入力するための入力欄を含むものでもよい。なお、入力要求の形式は、特に限定されないが、本実施形態では、入力画面をWebページとして示すWeb情報である。
【0029】
表示部22は、種々の情報を表示する。入力部23は、オペレータから種々の情報を受け付ける。例えば、入力部23は、サーバ30に対する接続要求と、オペレータを識別するオペレータIDと、オペレータ認証情報と、制御するIoT機器10を識別する端末識別IDと、IoT機器10を制御する制御命令とを受け付ける。
【0030】
指示制御部24は、指示装置20全体を制御する。例えば、指示制御部24は、指示通信部21が受信した入力要求が示す入力画面を表示部22に表示する。また、指示制御部24は、入力部23が受け付けた接続要求、オペレータID、オペレータ認証情報、端末識別IDおよび制御命令をサーバ30に送信する。
【0031】
(サーバ30の構成)
図4は、サーバ30の構成を示すブロック図である。
図4に示すサーバ30は、記憶部31と、通信部32と、サーバ制御部33とを有する。
【0032】
記憶部31は、IoT機器10を管理する機器管理情報と、オペレータを管理するオペレータ管理情報とを記憶する。
【0033】
機器管理情報は、端末識別IDごとに、IoT機器10のネットワーク上の位置を示す位置情報を対応付けた情報である。位置情報は、具体的には、NAT装置40により内部IPアドレスおよび内部ポート番号から変換された外部IPアドレスおよび外部ポート番号である。機器管理情報は、さらに端末識別IDごとに、端末識別IDにて識別されるIoT機器10を認証するための端末認証情報と、IoT機器10に対応した制御命令のリストである命令リストとを含んでもよい。命令リストは、指示装置20に記憶されていてもよい。
【0034】
図5は、機器管理情報の一例を示す図である。
図5に示す機器管理情報500は、端末識別ID501と、端末認証情報502と、制御命令一覧503と、IPアドレス504と、ポート番号505とを含む。端末識別ID501は、IoT機器10を識別する識別情報である。端末認証情報502は、IoT機器10を認証するためのパスワードである。制御命令一覧503は、IoT機器10を制御するための制御命令のリストである命令リストである。IPアドレス504およびポート番号505は、外部IPアドレスおよび外部ポート番号であり、IoT機器10のネットワーク上の位置を示す位置情報である。
【0035】
図4の説明に戻る。オペレータ管理情報は、オペレータIDごとに、オペレータIDにて識別されるオペレータを認証するためのオペレータ認証情報と、そのオペレータにて制御可能なIoT機器10を識別する端末識別IDのリストであるIoT機器リストとを対応付けた情報である。
【0036】
図6は、オペレータ管理情報の一例を示す図である。
図6に示すオペレータ管理情報600の例では、オペレータID601を含み、更に、オペレータ認証情報602と、端末識別ID603とを含む。オペレータID601は、オペレータを識別する識別情報である。オペレータ認証情報602は、オペレータIDにて識別されるオペレータを認証するためのパスワードである。端末識別ID603は、オペレータIDにて識別されるオペレータにて制御可能なIoT機器10を識別する端末識別IDのリストである。
【0037】
なお、
図5および
図6で示された機器管理情報およびオペレータ管理情報は、単なる一例であって、これの例に限らず、例えば、複数のテーブルに分かれた構成などでもよい。例えば、機器管理情報は、端末識別IDごとに端末認証情報と命令リストとを対応付けた第1のテーブルと、端末識別IDごとに外部IPアドレスと外部ポート番号とを対応付けた第2のテーブルとで構成されてもよい。
【0038】
図4の説明に戻る。通信部32は、NAT装置40、ローカルネットワーク50およびインターネット60を介してIoT機器10と通信する。また、通信部32は、インターネット60を介して指示装置20と通信する。例えば、通信部32は、IoT機器10から通知情報を受信し、指示装置20から接続要求、オペレータID、オペレータ認証情報、端末識別IDおよび制御命令を受信する。
【0039】
サーバ制御部33は、サーバ30全体を制御する。例えば、通信部32が通知情報を受信した場合、サーバ制御部33は、通知情報に含まれる端末識別IDおよび端末認証情報に基づいて、通知情報の送信元であるIoT機器10の認証を行う。例えば、サーバ制御部33は、通知情報に含まれる端末識別IDおよび端末認証情報の組み合わせと同じ組み合わせが記憶部31内の機器管理情報に含まれるか否かを判断する。サーバ制御部33は、同じ組み合わせが含まれる場合、IoT機器10の認証を成功とし、同じ組み合わせが含まれない場合、IoT機器10の認証を失敗とする。
【0040】
IoT機器10の認証が成功した場合、サーバ制御部33は、通知情報から、通知情報の送信元情報に含まれる外部IPアドレスおよび外部IPポート番号を取得する。サーバ制御部33は、取得した外部IPアドレスおよび外部IPポート番号を通知情報に含まれる端末識別IDと対応付けて記憶部31内の機器管理情報に追加する。このとき、機器管理情報において外部IPアドレスおよび外部ポート番号が既に対応付けられている場合、サーバ制御部33は、機器管理情報内の外部IPアドレスおよび外部ポート番号を、取得した外部IPアドレスおよび外部ポート番号に更新する。これにより、最新の外部IPアドレスおよび外部IPポート番号が記憶部31に記憶されることとなる。
【0041】
なお、サーバ制御部33は、外部IPアドレスおよび外部ポート番号に加えて、他の情報を端末識別IDと対応づけて記憶部31に記憶してもよい。他の情報としては、例えば、通知情報の送信プロトコルや通知情報の種類などが挙げられる。また、サーバ制御部33は、外部IPアドレスおよび外部ポート番号が最後に記憶されてから所定の削除時間が経過しても更新されなかった場合、その外部IPアドレスおよび外部ポート番号を記憶部31から削除してもよい。
【0042】
通信部32が接続要求を受信した場合、サーバ制御部33は、接続要求の送信元である指示装置20に対して認証入力要求を送信する。その後、通信部32がオペレータIDおよびオペレータ認証情報を受信した場合、サーバ制御部33は、受信されたオペレータIDおよびオペレータ認証情報に基づいて、オペレータの認証を行う。例えば、サーバ制御部33は、受信されたオペレータ識別IDおよびオペレータ認証情報の組み合わせと同じ組み合わせが記憶部31内のオペレータ管理情報に含まれるか否かを判断する。サーバ制御部33は、同じ組み合わせが含まれる場合、オペレータの認証を成功とし、同じ組み合わせが含まれない場合、オペレータの認証を失敗とする。
【0043】
オペレータの認証が成功した場合、サーバ制御部33は、指示装置20に対して識別入力要求を送信する。このとき、サーバ制御部33は、記憶部31内のオペレータ管理情報において、通信部32が受信したオペレータIDと同じオペレータIDに対応づけられたIoT機器リストを識別入力要求に含める。
【0044】
通信部32が端末識別IDを受信した場合、サーバ制御部33は、指示装置20に対して命令入力要求を送信する。このとき、サーバ制御部33は、記憶部31内の機器管理情報において、命令リストが記憶されている場合、通信部32が受信した端末識別IDと同じ端末識別IDに対応づけられた命令リストを命令入力要求に含める。なお、記憶部31内の機器管理情報において、命令リストが含まれていない場合、制御命令入力欄を命令入力要求に含める。
【0045】
通信部32が制御命令を受信した場合、サーバ制御部33は、記憶部31内のオペレータ管理情報において、通信部32が受信した端末識別IDと同じ端末識別IDと対応付けられた外部IPアドレスおよび外部ポートを宛先情報として設定した制御命令を生成する。サーバ制御部33は、宛先情報が設定された制御命令を送信する。
【0046】
本実施形態では、制御命令の送信先は、ローカルネットワーク50の配下にあるIoT機器10であるため、制御命令はNAT装置40を経由する。このとき、通知情報の宛先情報に含まれる外部IPアドレスおよび外部ポート番号は、上述したようにNAT装置40にてその外部IPアドレスおよび外部ポート番号と対応付けられた内部IPアドレスおよび内部ポート番号に変換される。このようなNAT装置40による処理は、制御命令だけでなく、指示装置20およびサーバ30からIoT機器10に送信される情報(信号やデータを含む)に対して共通であるため、以下では、その説明を省略する場合がある。
【0047】
以上説明したように本実施形態では、サーバ制御部33は、通知情報の送信元情報に含まれる外部IPアドレスおよび外部IPポート番号を取得する管理部としての機能と、外部IPアドレスおよび外部IPポート番号を宛先情報として設定した制御命令を生成し、その宛先情報を設定した制御命令を送信する送信制御部としての機能との両方を備える。
【0048】
なお、IoT機器10の認証やオペレータの認証は、IoT機器10やオペレータの認証が可能なものであれば、上記の例に限らない。また、IoT機器10の認証やオペレータの認証で使用される認証情報や認証方法は、互いに異なっていてもよいし、互いに同じでもよい。
【0049】
また、通知情報や制御命令だけでなく、IoT機器10、指示装置20およびサーバ30の間で通信される各情報(信号やデータを含む)に対して宛先情報および送信元情報を設定する処理が行われるが、本発明と直接関係しない処理については省略している。
【0050】
(動作の説明)
図7および
図8は、本実施形態の制御システムの動作の一例を説明するためのシーケンス図である。具体的には、
図7は、サーバ30に外部IPアドレスおよび外部ポート番号を登録するアドレス登録動作を説明するためのシーケンス図であり、
図8は、IoT機器10を制御する制御動作を説明するためのシーケンス図である。
【0051】
図7のアドレス登録動作では、先ず、IoT機器10の制御部13は、機器記憶部11から端末識別IDおよび端末認証情報を取得し、その端末識別IDおよび端末認証情報を含む通知情報を生成する。そして、制御部13は、機器記憶部11から通知先情報、内部IPアドレスおよび内部ポート番号を取得し、その通知先情報を宛先情報として通知情報に設定し、内部IPアドレスおよび内部ポート番号を送信元情報として通知情報に設定し、宛先情報および送信元情報を設定した通知情報を生成する。制御部13は、宛先情報および送信元情報を設定した通知情報を、機器通信部12およびローカルネットワーク50を介してNAT装置40に送信する(ステップS701)。
【0052】
NAT装置40は、通知情報を受信すると、その通知情報の送信元情報に含まれる内部IPアドレスおよび内部ポート番号を外部IPアドレスおよび外部ポート番号に変換し、変換前の内部IPアドレスおよび内部ポート番号と変換後の外部IPアドレスおよび外部ポート番号とを対応付けてNATテーブルとして記憶する(ステップS702)。そして、NAT装置40は、送信元情報を変換した通知情報を、インターネット60を介してサーバ30に送信する(ステップS703)。
【0053】
サーバ30の通信部32が通知情報を受信すると、サーバ制御部33は、その通知情報に含まれる端末識別IDおよび端末認証情報に基づいて、通知情報の送信元であるIoT機器10の認証を行う(ステップS704)。
【0054】
ここでは、認証が成功したとする。この場合、サーバ制御部33は、通知情報から、通知情報の送信元情報に含まれる外部IPアドレスおよび外部IPポート番号を取得する。サーバ制御部33は、取得した外部IPアドレスおよび外部IPポート番号を、通知情報に含まれる端末識別IDと対応付けて記憶部31内の機器管理情報に追加し(ステップS705)、処理を終了する。
【0055】
以上のアドレス登録動作が繰り返し行われ、最新の外部IPアドレスおよび外部ポート番号の組み合わせが記憶部31に登録される。なお、ステップS704で認証に失敗した場合、サーバ制御部33は、IoT機器10の認証に失敗した旨のエラーメッセージをIoT機器10や指示装置20のような所定の装置に送信するなどして、IoT機器10の認証に失敗した旨をオペレータなどに通知してもよい。
【0056】
図8の制御動作では、指示装置20の入力部23が接続要求を受け付けると、指示制御部24は、その接続要求を、指示通信部21およびインターネット60を介してサーバ30に送信する(ステップS801)。サーバ30の通信部32が接続要求を受信すると、サーバ制御部33は、認証入力要求を生成して、通信部32およびインターネット60を介して指示装置20に送信する(ステップS802)。
【0057】
指示装置20の指示通信部21が認証入力要求を受信すると、指示制御部24は、認証入力要求が示す認証入力画面を表示部22に表示する。その後、入力部23がオペレータIDおよびオペレータ認証情報を受け付けると、指示制御部24は、そのオペレータIDおよびオペレータ認証情報を、指示通信部21およびインターネット60を介してサーバ30に送信する(ステップS803)。
【0058】
サーバ30の通信部32がオペレータIDおよびオペレータ認証情報を受信すると、サーバ制御部33は、そのオペレータIDおよびオペレータ認証情報に基づいて、オペレータの認証を行う(ステップS804)。
【0059】
ここでは、認証が成功したとする。この場合、サーバ制御部33は、記憶部31から、オペレータ管理情報においてステップS804で受信されたオペレータIDと同じオペレータIDに対応付けられたIoT機器リストを取得する。サーバ制御部33は、そのIoT機器リストを含む識別入力画面を示す識別入力要求を生成して、通信部32およびインターネット60を介して指示装置20に送信する(ステップS805)。
【0060】
指示装置20の指示通信部21が識別入力要求を受信すると、指示制御部24は、識別入力要求が示す識別入力画面を表示部22に表示する。その後、入力部23が端末識別IDを受け付けると、指示制御部24は、その端末識別IDを、指示通信部21およびインターネット60を介してサーバ30に送信する(ステップS806)。なお、本実施形態では、オペレータが入力部23を用いて識別入力画面に含まれるIoT機器リストから端末識別IDを選択し、その選択した端末識別IDを入力部23が受け付ける。しかしながら、入力部23がオペレータから文字入力された端末識別IDを直接受け付けてもよい。
【0061】
サーバ30の通信部32が端末識別IDを受信すると、サーバ制御部33は、記憶部31から、機器管理情報において命令リストが記憶されている場合、受信された端末識別IDと同じ端末識別IDに対応付けられた命令リストを取得する。サーバ制御部33は、その命令リストを含む命令入力画面を示す命令入力要求を生成して、通信部32およびインターネット60を介して指示装置20に送信する(ステップS807)。なお、記憶部31内の機器管理情報において、命令リストが含まれていない場合、命令リストの代わりに、制御命令入力欄を含む命令入力画面を示す命令入力要求を生成する。
【0062】
指示装置20の指示通信部21が命令入力要求を受信すると、指示制御部24は、命令入力要求が示す命令入力画面を表示部22に表示する。その後、入力部23が制御命令を受け付けると、指示制御部24は、その制御命令を、指示通信部21およびインターネット60を介してサーバ30に送信する(ステップS808)。なお、本実施形態では、オペレータが入力部23を用いて命令入力画面に含まれる命令リストから制御命令を選択し、その選択した制御命令を入力部23が受け付けている。しかしながら、入力部23がオペレータから制御命令入力欄に文字入力された制御命令を直接受け付けてもよい。
【0063】
サーバ30の通信部32が制御命令を受信すると、サーバ制御部33は、記憶部31から、機器管理情報においてステップS807で受信された端末識別IDと同じ端末識別IDに対応づけられた外部IPアドレスおよび外部ポート番号を取得する。サーバ制御部33は、受信した制御命令に、取得した外部IPアドレスおよび外部ポート番号を宛先情報として設定し、宛先情報を設定した制御命令を生成する(ステップS809)。サーバ制御部33は、その宛先情報を設定した制御命令を、通信部32およびインターネット60を介してNAT装置40に送信する(ステップS810)。
【0064】
NAT装置40は、制御命令を受信すると、制御命令の宛先情報である外部IPアドレスおよび外部ポート番号を、記憶しているNATテーブルにおいて、その外部IPアドレスおよび外部ポート番号に対応づけられた内部IPアドレスおよび内部ポート番号に変換する(ステップS811)。NAT装置40は、宛先情報を変換した制御命令を、ローカルネットワーク50を介してIoT機器10に送信する(ステップS812)。
【0065】
IoT機器10の機器通信部12が制御命令を受信すると、制御部13は、その制御命令に従ってIoT機器10を制御し(ステップS813)、処理を終了する。
【0066】
なお、ステップS804で認証に失敗した場合、サーバ制御部33は、オペレータの認証に失敗した旨のエラーメッセージを指示装置20のような所定の装置に送信するなどして、オペレータの認証に失敗した旨をオペレータなどに通知してもよい。
【0067】
以上説明したように本実施形態によれば、ローカルネットワーク50の配下にあるIoT機器10の制御部13は、通知情報をNAT装置40を介してサーバ30に送信する。サーバ30の通信部32は、NAT装置40を介して通知情報を受信する。サーバ制御部33は、通信部32が受信した通知情報の送信元情報に含まれる外部IPアドレスおよび外部IPポート番号を取得する。また、サーバ制御部33は、IoT機器10を制御する制御命令に、取得した外部IPアドレスおよび外部IPポート番号を宛先情報として設定して、宛先情報が設定された制御命令を生成し、その宛先情報が設定された制御命令をNAT装置40を介してIoT機器10に送信する。IoT機器10の機器通信部12が制御命令を受信すると、制御部13は、その制御命令に従ってIoT機器10を制御する。
【0068】
これにより、IoT機器10からNAT装置40を介して受信した通知情報の送信元情報に含まれる外部IPアドレスおよび外部IPポート番号が、IoT機器10を制御する制御命令の宛先情報として設定され、その設定された制御命令がNAT装置40を介してIoT機器10に送信される。このため、NAT装置40のような通信中継装置に新たな機能を設けなくても、ローカルネットワーク50の外部からローカルネットワーク50の配下にあるIoT機器10に対して制御命令を伝送させることが可能になる。したがって、ローカルネットワーク50の配下にあるIoT機器10をローカルネットワーク50の外部から容易に制御することが可能になる。また、新たなグローバルアドレスも必要がないため、グローバルIPアドレスを予め確保しておく必要がない。
【0069】
また、本実施形態では、記憶部31は、サーバ制御部33が取得した外部IPアドレスおよび外部IPポート番号を記憶する。サーバ制御部33は、通信部32が指示装置20から制御命令を受信すると、記憶部31に記憶された外部IPアドレスおよび外部IPポート番号を宛先情報として設定した制御命令を生成する。このため、制御命令を受信してから速やかにIoT機器10に伝送させることが可能になるため、IoT機器10を速やかに制御することが可能になる。
【0070】
また、本実施形態では、IoT機器10の制御部13は、通知情報を繰り返し送信し、サーバ制御部33は、最新の外部IPアドレスおよび外部IPポート番号を宛先情報として設定した制御命令を生成する。このため、外部IPアドレスおよび外部IPポート番号が動的に設定される場合でも、ローカルネットワーク50の配下にあるIoT機器10をローカルネットワーク50の外部から容易に制御することが可能になる。
【0071】
(第2の実施形態)
本実施形態は、第1の実施形態と比較して、IoT機器10を制御する制御動作が異なる。具体的には、第1の実施形態では、指示装置20がサーバ30経由で制御命令をIoT機器10に送信していたが、本実施形態では、指示装置20がサーバ30を経由せずに制御命令をIoT機器10に送信する。
【0072】
図9は、本実施形態におけるIoT機器10を制御する制御動作を説明するためのシーケンス図である。なお、サーバ30に外部IPアドレスおよび外部ポート番号を登録するアドレス登録動作は第1の実施形態と同じである。
【0073】
先ず、
図8で説明した動作と同様にステップS801〜S805の処理が実行される。その後、指示装置20の指示通信部21が識別入力要求を受信すると、指示制御部24は、識別入力要求が示す識別入力画面を表示部22に表示する。その後、入力部23が端末識別IDを受け付けると、指示制御部24は、制御命令の送信先であるIoT機器10のネットワーク上の位置を示す位置情報の取得を要求する位置取得要求を生成する。指示制御部24は、位置取得要求に端末識別IDを含め、その端末識別IDを含む位置取得要求を、指示通信部21およびインターネット60を介してサーバ30に送信する(ステップS901)。
【0074】
サーバ30の通信部32が位置取得要求を受信すると、サーバ制御部33は、記憶部31から、機器管理情報において、受信された位置取得要求に含まれる端末識別IDと同じ端末識別IDに対応付けられた外部IPアドレスおよび外部ポート番号を取得する。サーバ制御部33は、外部IPアドレスおよび外部ポート番号を含む命令入力要求を生成して、通信部32およびインターネット60を介して指示装置20に送信する(ステップS902)。なお、外部IPアドレスおよび外部ポート番号は、上述したようにIoT機器10のネットワーク上の位置を示す位置情報である。また、この際に、サーバ制御部33は、記憶部31に制御命令のリストである命令リストが記憶されている場合、外部IPアドレスおよび外部ポート番号とともに命令リストを取得し、その取得した命令リストを命令入力要求に含める。
【0075】
指示装置20の指示通信部21が命令入力要求を受信すると、指示制御部24は、命令入力要求が示す命令入力画面を表示部22に表示する。その後、オペレータが入力部23を用いて命令入力画面に含まれる命令リストから制御命令を選択し、その選択した制御命令を入力部23が受け付けるか、または、入力部23がオペレータから制御命令入力欄に文字入力された制御命令を直接受け付ける。入力部23が制御命令を受け付けると、指示制御部24は、その受け付けた制御命令に、命令入力要求に含まれる外部IPアドレスおよび外部ポート番号を宛先情報として設定し、宛先情報を設定した制御命令を生成する(ステップS903)。なお、制御命令の命令リストは、サーバ30の記憶部31の代わりに指示装置20に記憶されてもよい。この場合、指示制御部24は、命令入力画面を表示部22に表示する際に、命令リストを読み出して、表示部22に表示する。指示制御部24は、その宛先情報を設定した制御命令を、指示通信部21およびインターネット60を介してNAT装置40に送信する(ステップS904)。その後、ステップS811〜S813の処理が実行される。
【0076】
なお、サーバ制御部33は、ステップS901において外部IPアドレスおよび外部ポート番号を命令入力要求の命令入力画面に含ませることで、外部IPアドレスおよび外部ポート番号を指示装置20の表示部22に表示させてもよいし、外部IPアドレスおよび外部ポート番号を命令入力画面に含ませずに、外部IPアドレスおよび外部ポート番号を表示部22に表示させなくてもよい。
【0077】
本実施形態では、サーバ30のサーバ制御部33が通知情報の送信元情報に含まれる外部IPアドレスおよび外部IPポート番号を取得する管理部としての機能を有し、指示装置20の指示制御部24が外部IPアドレスおよび外部IPポート番号を宛先情報として設定した制御命令を生成し、その宛先情報を設定した制御命令を送信する送信制御部としての機能を備える。なお、指示装置20の指示制御部24がサーバ30の記憶部31から外部IPアドレスおよび外部IPポート番号を取得するタイミングは、
図9の例では、命令リストの取得タイミングと同時であったが、例えば、入力部23が制御命令を受け付けたタイミングなどの他のタイミングでもよい。
【0078】
本実施形態でも、通信中継装置に新たな機能を設けずに、ローカルネットワーク50の外部からローカルネットワーク50の配下にあるIoT機器10に対して制御命令を伝送させることが可能になるため、ローカルネットワーク50の配下にあるIoT機器10をローカルネットワーク50の外部から容易に制御することが可能になる。
【0079】
(第3の実施形態)
本実施形態は、第1の実施形態と比較して、サーバ30がIoT機器10に制御命令を送信するタイミングが異なる。
【0080】
図10および
図11は、本実施形態の制御システムの動作の一例を説明するためのシーケンス図である。具体的には、
図10は、サーバ30に制御命令を登録する命令登録動作を説明するためのシーケンス図であり、
図11は、IoT機器10を制御する制御動作を説明するためのシーケンス図である。
【0081】
図10の命令登録動作では、先ず、
図8で説明したステップS801〜S808までの処理が実行される。その後、サーバ30の通信部32が制御命令を受信すると、サーバ制御部33は、その制御命令を、記憶部31内の機器管理情報においてステップS807で受信された端末識別IDと同じ端末識別IDと対応付けて記憶し(ステップS1001)、処理を終了する。
【0082】
なお、端末識別IDと制御命令とを対応付ける方法は、上記の例に限らない。例えば、サーバ制御部33は、端末識別IDと対応付けられた専用の記憶領域に制御命令をWeb情報として記憶することで、端末識別IDと制御命令とを対応付けてもよい。この場合、専用の記憶領域に割り当てられたURLが、機器記憶部11に記憶された通知先情報に対応する。Web情報は、例えば、ホームページ画面を生成するHTMLファイルだけでなく、文字情報を含むテキストファイルなど、制御命令を含ませることができるファイルであれば、ファイルの形式は特に限定されない。
【0083】
図11の制御動作では、IoT機器10の制御部13は、所定の送信間隔ごとに、先ず、機器記憶部11から端末識別IDおよび端末認証情報を取得し、その端末識別IDおよび端末認証情報を含む通知情報として、制御命令を取得する命令取得要求を生成する。そして、制御部13は、機器記憶部11から通知先情報、内部IPアドレスおよび内部ポート番号を取得し、その通知先情報を宛先情報として命令取得要求に設定し、内部IPアドレスおよび内部ポート番号を送信元情報として命令取得情報に設定して、宛先情報および送信元情報を設定した命令取得要求を生成する。制御部13は、宛先情報および送信元情報を設定した命令取得要求を、機器通信部12およびローカルネットワーク50を介してNAT装置40に送信する(ステップS1101)。
【0084】
なお、命令取得要求は、本実施形態では、http(Hypertext Transfer Protocol)などを用いたWeb情報の取得要求を用いる。しかしながら、命令取得要求は、Web情報の取得要求に限らず、制御命令が取得できるものであれば、特に限定されない。命令取得要求は、例えば、FTP(File Transfer Protocol)を用いた取得要求などでもよい。
【0085】
ステップS1101の処理が終了すると、その後、ステップS702〜S704の処理と同様な処理であるステップS1102〜1104が実行される。ステップS1102〜1104の処理は、ステップS702〜S704の処理において、通知情報を命令取得要求に読み替えたものと同じである。
【0086】
そしてステップS1104にてIoT機器10の認証が成功すると、サーバ制御部33は、記憶部31内の機器管理情報において命令取得要求に含まれる端末識別IDと同じ端末識別IDに対応づけられた制御命令を取得する(ステップS1105)。なお、例えば、通知先情報に対応するURLに記憶された制御命令が記載されたHTMLファイルを取得するようにしてもよい。サーバ制御部33は、命令取得要求の送信元情報である外部IPアドレスおよび外部ポート番号を宛先情報として設定した制御命令を生成する(ステップS1106)。その後、ステップS810〜S813の処理が実行される。なお、ステップS813では、例えば、IoT機器10の機器通信部12が受信したファイルが、HTMLファイルである場合、制御部13は、受信したHTMLファイルを解析してHTMLファイルに制御命令が記載されているか否かを判定し、制御命令の記載がある場合、HTMLファイルから制御命令を抽出し、抽出した制御命令に従ってIoT機器10を制御する。また、制御命令の記載がない場合、IoT機器10の制御を行わずに処理を終了する。そして、IoT機器10の制御部13は、所定の送信間隔後、S1101からの動作を繰り返し実行する。
【0087】
以上説明したように本実施形態によれば、記憶部31は、通信部32が受信した制御命令を記憶する。サーバ制御部33は、通信部32が通知情報を受信すると、記憶部31に記憶した制御命令に、その通知情報から取得した外部IPアドレスおよび外部IPポート番号を宛先情報として設定し、宛先情報を設定した制御命令を生成する。したがって、通知情報の受信時に制御命令をIoT機器10に伝送させることが可能になるため、外部IPアドレスおよび外部IPポート番号を記憶する必要がなく、サーバ30の記憶領域やコストを低減することが可能になる。また、最新の外部IPアドレスおよび外部IPポート番号が制御信号の宛先情報として設定されるため、外部IPアドレスおよび外部IPポート番号が動的に設定される場合でも、制御命令がIoT機器10に伝送されなくなることを抑制することが可能になる。
【0088】
(第4の実施形態)
本実施形態では、通知情報の別の例について説明する。
【0089】
第1の実施形態では、通知情報として専用の情報が使用されていたが、通知情報は他の情報と兼用されてもよい。例えば、IoT機器10が所定のデータをサーバ30に送信する機器の場合、制御部13は、送信するデータに機器記憶部11内の端末識別IDおよび端末認証情報を含ませることで、データを通知情報と兼用する。この場合、所定のデータを送信する送信条件が満たされると、制御部13は、通知情報としてデータを送信する。例えば、制御部13は、所定のデータを送信する送信条件が満たされるたびに、通知情報としてデータを送信してもよいし、所定の送信間隔で専用の通知情報を送信し、その送信間隔内に送信条件が満たされ、データを送信する必要が生じた場合に、通知情報としてデータを送信してもよい。
【0090】
データは、例えば、IoT機器10が撮影により取得した撮影画像、IoT機器10が受信または検出したセンサデータ、または、IoT機器10による計算処理の処理結果を示す結果データなどである。送信条件は、所定の時間が経過したことや、異常を検知したことなどである。通知情報としてデータを送信する場合、サーバ30は、端末識別IDごとに、その端末識別IDにて識別されるIoT機器10からのデータを記憶してもよい。
【0091】
また、制御部13は、通知情報としてユニークな認証キーの取得を要求するキー取得要求を送信してもよい。この場合、サーバ30のサーバ制御部33は、通知情報から外部IPアドレスおよび外部ポート番号を取得すると、認証キーを生成してIoT機器10に送信する。また、サーバ制御部33は、制御命令を送信する際に、認証キーを確認キーとして制御命令と共にIoT機器10に送信する。
【0092】
例えば、第1および第2の実施形態のようにサーバ30のサーバ制御部33が端末識別IDに外部IPアドレスおよび外部ポート番号を対応付けて記憶する場合、サーバ30のサーバ制御部33は、取得した認証キーを端末識別IDに対応付けて記憶部31内の機器管理情報に追加すると共に、認証キーを登録キーとしてIoT機器10に送信する。なお、既に認証キーが記憶されている場合、サーバ制御部33は、既に記憶されている認証キーを、新たに生成した認証キーに更新する。
【0093】
IoT機器の機器通信部12が登録キーを受信すると、制御部13は、その登録キーを機器記憶部11に記憶する。なお、既に登録キーが記憶されている場合、制御部13は、既に記憶されている登録キーを、新たに生成した登録キーに更新する。
【0094】
第1の実施形態のように制御命令がサーバ30を経由してIoT機器10に送信される場合、サーバ30のサーバ制御部33は、
図8のステップS810で制御命令を送信する際に、記憶部31内の機器管理情報において
図8のステップS807で受信された端末識別IDと同じ端末識別IDに対応づけられた認証キーを、確認キーとして制御命令と共にIoT機器10に送信する。
【0095】
また、第2の実施形態のように制御命令がサーバ30を経由せずにIoT機器10に送信される場合、サーバ30のサーバ制御部33は、
図9のステップS902で命令入力要求を送信する際に、記憶部31内の機器管理情報において
図8のステップS901で受信された位置取得要求に含まれる端末識別IDと同じ端末識別IDに対応づけられた認証キーを命令入力要求と共に指示装置20に送信する。そして、ステップS903で指示装置20の指示通信部21が命令入力要求と共に認証キーを受信し、ステップS904で指示制御部24が制御命令を送信する際に、その受信された認証キーを確認キーとして制御命令と共にIoT機器10に送信する。
【0096】
いずれの場合でもステップS813でIoT機器10の機器通信部12が制御命令と共に確認キーを受信し、制御部13は、受信した確認キーと機器記憶部11に記憶された登録キーとが一致するか否かを判断する。それらが互いに一致する場合に、制御部13は、制御命令を実行する。
【0097】
以上説明したように本実施形態によれば、制御部13は、所定のデータを送信する送信条件が満たされると、そのデータを通知情報として送信する。このため、通知情報を他のデータと兼用させることが可能になるため、トラフィックを軽減させることが可能になる。
【0098】
また、本実施形態では、制御部13は、通知情報として認証キーの取得を要求するキー取得要求を送信する。サーバ制御部33は、通信部32がキー取得要求を受信した場合、認証キーを生成して登録キーとしてIoT機器10送信し、その後、制御命令の送信時に、制御命令と共に認証キーとして確認キーを送信する。機器通信部12は、登録キーと確認キーとをさらに受信する。制御部13は、登録キーと確認キーとが互いに一致する場合、制御命令に従ってIoT機器10を制御する。このため、指示装置20やサーバ30のなり済ましを抑制することが可能になり、セキュリティを向上させることが可能になる。
【0099】
(第5の実施形態)
本実施形態では、IoT機器10に制御命令を送信する前に確認信号を送信する例を説明する。
【0100】
第1の実施形態のように制御命令がサーバ30を経由して送信される場合、サーバ30の通信部32が制御命令を受信すると、サーバ制御部33は、その制御命令をステップS807で受信された端末識別IDと同じ端末識別IDに対応づけて記憶部31に記憶する。その後、サーバ制御部33は、記憶部31内の機器管理情報において受信された端末識別IDと同じ端末識別IDに対応づけられた外部IPアドレスおよび外部ポート番号を宛先情報とする確認信号を、NAT装置40を介してIoT機器10に送信する。
【0101】
IoT機器10の機器通信部12が確認信号を受信すると、制御部13は、機器記憶部11に記憶されている端末識別IDを含む応答信号をサーバ30に送信する。サーバ30の通信部32が応答信号を受信すると、サーバ制御部33は、その応答信号内の端末識別IDとその応答信号の送信元の外部IPアドレスおよび外部ポート番号との組が、記憶部31に記憶された端末識別IDと外部IPアドレスおよび外部ポート番号との組に合致するか判定する。制御部13は、端末識別IDと外部IPアドレスおよび外部ポート番号との組が合致する場合、その端末識別IDに対応づけられた制御命令を取得し、応答信号の送信元の外部IPアドレスおよび外部ポート番号を宛先情報として設定した制御命令を生成する。その後は、ステップS810〜S813の処理が実行される。また、サーバ制御部33は、端末識別IDと外部IPアドレスおよび外部ポート番号との組が合致しない場合、記憶部31内の機器管理情報におけるその端末識別IDに対応づけられた外部IPアドレスおよび外部ポート番号を削除する。この場合、サーバ制御部33は、制御命令の生成を次のアドレス登録動作で行ってもよいし、制御命令の送信元である指示装置20にエラーを送信してもよい。
【0102】
また、第2の実施形態のように制御命令がサーバ30を経由せずに送信される場合、ステップS901でサーバ30の通信部32が端末識別IDを受信すると、記憶部31内の機器管理情報においてその受信された端末識別IDと同じ端末識別IDに対応づけられた外部IPアドレスおよび外部ポート番号を宛先情報とする確認信号を、NAT装置40を介してIoT機器10に送信する。
【0103】
IoT機器10の機器通信部12が確認信号を受信すると、制御部13は、機器記憶部11に記憶されている端末識別IDを含む応答信号をサーバ30に送信する。サーバ30の通信部32が応答信号を受信すると、サーバ制御部33は、その応答信号内の端末識別IDとその応答信号の送信元の外部IPアドレスおよび外部ポート番号との組が、記憶部31に記憶された端末識別IDと外部IPアドレスおよび外部ポート番号との組に合致するか判定する。制御部13は、その判定の結果、合致すると判定した場合、その同じ端末識別IDに対応づけられた命令リストを取得し、その命令リストと応答信号の送信元情報に含まれる外部IPアドレスおよび外部ポート番号とを含む命令入力要求を生成して指示装置20に送信する。その後は、ステップS902〜S903およびS811〜S813の処理が実行される。
【0104】
以上説明したように本実施形態によれば、サーバ制御部33は、取得した外部IPアドレスおよび外部IPポート番号を宛先情報として設定した確認信号をNAT装置40を介してIoT機器10に送信する。IoT機器10の機器通信部12が確認信号を受信した場合、制御部13は、その確認信号に対する応答信号をサーバ30に送信する。サーバ30の通信部32が応答信号を受信した場合、サーバ制御部33は、制御命令を送信する。このため、外部IPアドレスおよび外部IPポート番号が変更され、制御命令がIoT機器10まで伝送されないのに関わらず、制御命令を送信してしまうことを抑制することが可能になる。したがって、セキュリティを向上させることが可能になる。
【0105】
(第6の実施形態)
本実施形態では、通知情報を送信する送信間隔を調節する例を説明する。具体的には、NAT装置40のNATテーブル内の各レコードは、通常、所定のタイムアウト値(アイドルタイムアウト値やセッションタイムアウト値)ごとにクリアされるが、本実施形態では、通知情報の送信間隔をNATテーブル内のレコードがクリアされない範囲でできるだけ長くなるように調整する例を説明する。
【0106】
図12は、本実施形態の動作の一例を説明するための図である。
【0107】
図12の例では、IoT機器10の制御部13は、先ず、送信間隔を所定の初期値から徐々に長くしながら通知情報を繰り返し送信する。具体的には、制御部13は、初期値を1分とし、送信間隔を初期値である1分から2分ずつ長くしている。つまり、送信間隔は、1分間、3分間、5分間、7分間…となる。このとき、制御部13は、通知情報として、第1の実施形態などで説明した通常の通知情報を使用してもよいし、送信間隔を決定するためのテスト通知情報を使用してもよい。なお、テスト通知情報は、通常の通知情報と同様に機器記憶部11に記憶された端末識別IDおよび端末認証情報を含む。
【0108】
サーバ30のサーバ制御部33は、通知情報の送信元情報に含まれる外部IPアドレスおよび外部IPポート番号を取得する際に、通信部32が通知情報を受信した受信日時をさらに取得し、その受信日時を、記憶部31内の機器管理情報において通知情報に含まれる端末識別IDと同じ端末識別IDと対応付けて記憶部31に記憶する。
【0109】
サーバ制御部33は、取得した最新の外部IPアドレスおよび外部ポート番号の少なくとも一方が前回取得した外部IPアドレスおよび外部ポート番号から変更されているか否かを判断する。
【0110】
外部IPアドレスおよび外部ポート番号の少なくとも一方が変更されている場合、サーバ制御部33は、送信間隔として現在の送信間隔に応じた設定値をIoT機器10の制御部13に設定する。具体的には、サーバ制御部33は、設定値を示す間隔設定命令を生成し、その間隔設定命令の宛先情報として最新の外部IPアドレスおよび外部ポート番号を設定し、宛先情報を設定した間隔設定命令を生成する。サーバ制御部33は、その宛先情報を設定した間隔設定命令を、インターネット60、NAT装置40およびローカルネットワーク50を介してIoT機器10に送信する。IoT機器10の機器通信部12が間隔設定命令を受信すると、制御部13は、その間隔設定命令に従って送信間隔を設定する。そして、制御部13は、設定した送信間隔で通知情報を送信する。
【0111】
設定値は、具体的には、現在の送信間隔の一つ前の送信間隔である。図の例では、送信間隔が7分のときに外部IPアドレスが変更されている。このため、設定値は5分となる。
【0112】
また、サーバ30のサーバ制御部33は、送信間隔の設定値を解除する解除条件を満たすか否かを判断する。解除条件は、例えば、外部IPアドレスおよび外部ポート番号の少なくとも一方が再度変更されたことなどである。
【0113】
解除条件が満たされた場合、サーバ制御部33は、IoT機器10の制御部13に設定した設定値を解除する。具体的には、サーバ制御部33は、設定値の解除を要求する解除命令の宛先情報として最新の外部IPアドレスおよび外部ポート番号を設定して、宛先情報を設定した解除命令を生成する。サーバ制御部33は、その宛先情報を設定した解除命令を、インターネット60、NAT装置40およびローカルネットワーク50を介してIoT機器10に送信する。IoT機器10の機器通信部12が解除命令を受信すると、制御部13は、送信間隔として設定している設定値を解除する。その後、制御部13は、送信間隔を再設定するために、再び、送信間隔を所定の初期値から徐々に長くしながら通知情報を繰り返し送信する。再設定条件は、例えば、外部IPアドレスおよび外部ポート番号の少なくとも一方が変更されたことや、設定後に所定の再設定期間が経過したことなどである。
【0114】
図13は、本実施形態の動作の別の例を説明するための図である。
【0115】
図13では、IoT機器10の制御部13は、送信間隔を所定の初期値に固定して、通知情報を繰り返し送信する。初期値は、タイムアウト値と比べて十分に短いと考えられる間隔であり、図の例では、1分としている。なお、制御部13は、通知情報として通常の通知情報を使用してもよいし、テスト通知情報を使用してもよい。
【0116】
サーバ30のサーバ制御部33は、通知情報の送信元情報に含まれる外部IPアドレスおよび外部IPポート番号を取得する際に、通信部32が通知情報を受信した受信日時をさらに取得し、その受信日時を、記憶部31内の機器管理情報において通知情報に含まれる端末識別IDと同じ端末識別IDと対応付けて記憶部31に記憶する。
【0117】
サーバ制御部33は、外部IPアドレスおよび外部ポート番号を取得するたびに、その取得した最新の外部IPアドレスおよび外部ポート番号の少なくとも一方が前回取得した外部IPアドレスおよび外部ポート番号から変更されているか否かを判断する。
【0118】
サーバ制御部33は、最初(1回目)に外部IPアドレスおよび外部IPポート番号の少なくとも一方が変更された場合、記憶部31において、変更された外部IPアドレスおよび外部IPポート番号に対応する受信日時に第1の変更フラグを対応付ける。外部IPアドレスおよび外部IPポート番号に対応する受信日時は、外部IPアドレスおよび外部IPポート番号を送信元情報として含む通知情報の受信日時である。また、サーバ制御部33は、次に(2回目)に外部IPアドレスおよび外部IPポート番号の少なくとも一方が変更された場合、記憶部31において、変更された外部IPアドレスおよび外部IPポート番号に対応する受信日時に第2の変更フラグを対応付ける。
【0119】
そして、サーバ制御部33は、記憶部31において、第1の変更フラグが付いた受信日時である第1の日時と、第2の変更フラグが付いた受信日時である第2の日時とに応じた設定値をIoT機器10の制御部13に設定する。設定値の具体的な設定方法は、
図12の例と同様である。
【0120】
設定値は、具体的には、第2の日時の一つ前の受信日時と第1の日時と差である。図の例では、第2の日時は第1の日時の4分後であり、受信日時は1分ごとにカウントされるため、設定値は、3分である。
【0121】
以上説明した本実施形態によれば、IoT機器10の制御部13は、通知情報を送信する送信間隔を徐々に長くする。サーバ制御部33は、最新の外部IPアドレスおよび外部IPポート番号の少なくとも一方が取得した外部IPアドレスおよび外部IPポート番号から変更されている場合、送信間隔として現在の送信間隔に応じた設定値を制御部13に設定する。
【0122】
この場合、NATテーブル内のレコードがタイムアウトされて外部IPアドレスおよび外部IPポート番号が変更されてしまう送信間隔に応じて、送信間隔を調節することができるため、通知情報の送信間隔をNATテーブル内のレコードがクリアされない範囲でできるだけ長くなるように調整することが可能になる。
【0123】
また、本実施形態では、IoT機器10の制御部13は、通知情報を送信する送信間隔を固定する。サーバ制御部33は、通信部32が通知情報を受信した受信日時を取得し、サーバ制御部33は、最初に外部IPアドレスおよび外部IPポート番号の少なくとも一方が変更された際の受信日時である第1の日時と、次に外部IPアドレスおよび外部IPポート番号の少なくとも一方が変更された際の受信日時である第2の日時とに応じた設定値を制御部13に設定する。
【0124】
この場合でも、NATテーブル内のレコードがタイムアウトされて外部IPアドレスおよび外部IPポート番号が変更されてしまう送信間隔に応じて、送信間隔を調節することができるため、通知情報の送信間隔をNATテーブル内のレコードがクリアされない範囲でできるだけ長くなるように調整することが可能になる。
【0125】
以上説明した各実施形態において、図示した構成は単なる一例であって、本発明はその構成に限定されるものではない。
【0126】
例えば、IoT機器10、指示装置20およびサーバ30の機能は、その機能を実現するためのプログラムを、コンピュータにて読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ実行させることで、実現されてもよい。
【0127】
また、IoT機器10を制御する制御装置は、指示装置20とサーバ30とで構成されていたが、単一の装置で構成されてもよい。また、制御の対象となる対象機器は、IoT機器10に限らない。対象機器は、例えば、PCなどの情報処理装置でもよい。
【0128】
また、第4の実施形態で説明した通知情報としてキー取得要求を送信する構成や、第5の実施形態で説明した確認信号を送信する構成を、第3の実施形態で説明した構成に適用してもよい。