(57)【要約】【課題】ＷｅｂＳｏｃｋｅｔのようなリアルタイムな双方向プロトコルを用いて、宅外機器と宅内機器の間で、上に示した家電機器制御を、できるだけリアルタイムに、かつ、軽い処理負荷で安定した接続を実現する。【解決手段】宅外装置とサーバと宅内機器制御装置とを有し、ネットワークでそれらが各々接続され、双方向通信プロトコルを用いて通信を行うリモートアクセスシステムにおいて、宅外装置が宅内機器制御装置に対して電文種別が制御命令である電文を送信する場合には、サーバ経由で通信を行い、宅内制御装置が、宅外装置に対して電文種別がストリーミングである電文を送信する場合には、サーバを介さずに、宅内機器制御装置から直接宅外装置に電文を送信する。【選択図】図９
2015106358.tif 000002
【特許請求の範囲】
【請求項１】
宅外装置とサーバと宅内機器制御装置とを有し、ネットワークでそれらが各々接続されたリモートアクセスシステムであって、
双方向通信プロトコルを用いて、前記宅外装置と前記サーバ間で第一の接続を、
前記サーバと前記宅内機器制御装置間で第二の接続を、
前記宅外装置と前記宅内機器制御装置間で第三の接続をそれぞれ行い、
接続された装置間で、送信元の装置識別情報、送信先の装置識別情報、電文種別、電文本体を含む電文の送受信を行い、
前記宅外装置が、前記宅内機器制御装置に対して電文種別が制御命令である電文を送信する場合には、前記第一の接続を利用して、前記宅外装置が前記サーバに前記電文を送信し、前記第二の接続を利用して、前記サーバが、前記宅内機器制御装置に前記電文を送信することによって、前記電文を受信した前記宅内機器制御装置は、前記制御命令に基づく制御を行い、
前記宅内制御装置が、前記宅外装置に対して電文種別がストリーミングである電文を送信する場合には、前記第三の接続を利用して、前記宅内機器制御装置から前記宅外装置に前記電文を送信することによって、前記電文を受信した前記宅外装置は、ストリーミングの受信を行うことを特徴とするリモートアクセスシステム。
【請求項２】
前記サーバは、複数の前記宅外装置からの前記宅内機器制御装置への接続要求に対し、一つの前記宅外装置からの前記制御電文のみを、前記宅内機器制御装置に転送するよう制限することを特徴とする請求項１記載のリモートアクセスシステム。
【請求項３】
前記宅内制御装置からマルチメディアデータを受信する場合、前記宅外装置は、第三の接続を利用して、前記宅内制御装置に、マルチメディア伝送用のサブプロトコルへの切替命令を送信し、
前記宅内制御装置が、前記伝送プロトコルをサポートする場合、前記サブプロトコルで規定されたデータ形式に従い、前記宅内制御装置から、前記宅外機器にマルチメディアデータを伝送することを特徴とする請求項１記載のリモートアクセスシステム。
【請求項４】
前記サーバは、前記宅外装置から受信した前記宅内機器制御装置への前記電文に送信元の前記宅外機器の装置識別情報を記述して、前記宅内機器制御装置に送信し、
前記宅内機器制御装置は、前記電文に対する返信電文の宛先に、前記宅外機器の装置識別情報を記述し、前記サーバに送信することを特徴とする請求項１記載のリモートアクセスシステム。
【請求項５】
宅外装置とサーバと宅内機器制御装置とを有し、ネットワークでそれらが各々接続されたリモートアクセスシステムであって、
双方向通信プロトコルを用いて、前記宅外装置と前記サーバ間で第一の接続を、
前記サーバと前記宅内機器制御装置間で第二の接続を、
前記宅外装置と前記宅内機器制御装置間で第三の接続を行い、
接続された装置間で、送信元の装置識別情報、送信先の装置識別情報、電文種別、電文本体を含む電文の送受信を、非同期で行い、
前記宅内機器制御装置が、前記宅外装置に対し送る前記電文の電文種別がイベントである場合に、
前記第三の接続が接続中であれば、
前記宅内機器制御装置は、前記第三の接続を利用し、前記宅外装置に対し、前記電文を送信し、
前記送信が失敗した場合、または、第三の接続が切断中の場合、前記第二の接続を利用し、前記サーバに対し、前記宅内機器制御装置への前記電文を送信し、前記サーバは、前記第一の接続を利用して、前記電文を、前記宅外装置に伝送することを特徴とするリモートアクセスシステム。
【請求項６】
前記サーバが、前記第一の接続を利用して、前記電文を、前記宅外装置に伝送できなかった場合、前記電文をサーバに保持し、接続状態の回復を待って、前記電文を、送信できるまで再送することを特徴とする請求項５記載のリモートアクセスシステム。
【請求項７】
前記第一の接続が切断中だった場合に、
前記サーバが、前記電文をサーバに保持し、前記宅外装置が、前記サーバに対し第一の接続を要求し、接続されたときに、前記電文を送信することを特徴とする請求項５記載のリモートアクセスシステム。
【請求項８】
ネットワークで各々接続された宅外装置とサーバと宅内機器制御装置とを有し、
双方向通信プロトコルを用いて、前記宅外装置と前記サーバ間で第一の接続を、
前記サーバと前記宅内機器制御装置間で第二の接続を、
前記宅外装置と前記宅内機器制御装置間で第三の接続を行い、
接続された装置間で、送信元の装置識別情報、送信先の装置識別情報、電文種別、電文本体を含む電文の送受信を、非同期で行うリモートアクセスシステムにおいて、
前記宅内機器制御装置が、前記宅外装置に対し送る前記電文の電文種別が返信である場合、前記第一の接続を利用し、前記サーバに対し、前記送信先に、前記宅外装置の装置識別情報を記載した前記電文を送信し、
前記宅内機器制御装置が、前記宅外装置に対し送る前記電文の電文種別がストリーミングである場合、前記第三の接続を利用して、前記電文を、前記宅内機器制御装置に送信することを特徴とする宅内機器制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リモートアクセスシステム、および宅内機器制御装置に係り、特に家庭内の家電機器を宅外機器から制御し、情報を取得するためのリモートアクセスを実現するに好適なリモートアクセスシステムおよび宅内機器制御装置に関する。
【背景技術】
【０００２】
インターネット上での名前解決システムであるＤＮＳ（Domain Name System）を前提として、可変のＩＰアドレスが割り当てられている機器に対して、動的にホスト名を検索するシステムであるＤＤＮＳ(Dynamic Domain Name)が、広く普及している。特に、インターネットサービスプロバイダから、可変ＩＰアドレスを割り当てられている個人ユースにおいて、家庭内の機器を外部からインターネットを介してアクセスするときに有用な技術である。
【０００３】
例えば、特許文献１には、ホームネットワークに接続された家電機器などを、ホームゲートウェイを介してインターネットに接続し、インターネット上のＤＤＮＳを介して、インターネットに接続した宅外機器から制御し、情報を取得するためのリモートアクセスによる通信方法が開示されている。
【０００４】
ここで、図１４を用いて従来技術に係るＤＤＮＳによるインターネット上の通信について簡単に説明する。図１４は、従来技術に係るＤＤＮＳによるインターネット上の通信を説明する模式図である。
【０００５】
インターネット３に接続されたＨＧＷ２には、宅内ＬＡＮを介しＨＣ（Home Controller）４が接続され、また、ＨＣ４には宅内機器５がつながっている。ここで、ＨＣ４は<接続開始時に、ＨＧＷ２に対し、宅外からアクセスするためのポート番号の開放を設定する（４２０）。
【０００６】
ＤＤＮＳサーバ４０１は、ＨＧＷ（Home Gate  Way）２のＩＰアドレスを管理している。また、ＨＧＷ２は、インターネット上のＩＰアドレス割り当てが変更されるたびに、ＤＤＮＳサーバ４０１に対し、新しいＩＰアドレスを通知する。
【０００７】
インターネット３に接続された宅外機器１２は、ＤＤＮＳサーバ４０１にＨＧＷ２のＩＰアドレスを問い合わせ、予め知っているＨＣ４の開放ポート番号と組み合わせて、ＨＴＴＰプロトコルで要求を行うことにより、ＨＣ４に対し、アクセスを行うことができる(４２３、４２４)。あるいは、リモートアクセスを管理するＨＴＴＰサーバ４０２に、宅外機器１２からのＨＴＴＰアクセス電文を中継して(４２１)、ＨＴＴＰサーバ４０２からＨＧＷ２を介して、ＨＣ４にＨＴＴＰ要求を行うことにより、宅外機器１２からＨＣ４に、アクセスを行うこともできる。
【０００８】
このようなＤＤＮＳサーバ４０１を用いたリモートアクセスは、ＰＣやＡＶ機器などでもよく用いられているが、家電機器制御に用いる場合には次の用途が考えられる。
【０００９】
（１）宅内機器を、宅外機器から制御する
電源をＯＮ／ＯＦＦしたり、例えば、宅内機器が冷暖房装置であれば、冷暖房モードを切り替えたり、温度設定を買えたりする。あるいは、宅内機器がＷｅｂカメラであれば、カメラの方向やズーム倍率などを変更する。
【００１０】
（２）宅内機器から、リアルタイムのイベントを宅外機器に通知する
例えば、宅内機器がＷｅｂカメラの場合に、泥棒の侵入を検知した場合や、輻射熱センサを持っている冷暖房装置の場合に、宅内の人やペットの生体情報に異常を検知した場合、命などに関わる緊急のイベント情報として、宅外機器に通知する。
【００１１】
（３）宅内機器から、宅外機器へのリアルタイム配信
例えば、宅内機器がＷｅｂカメラの場合に、Ｗｅｂカメラが撮影した動画を、宅外機器でリアルタイム視聴する。
【００１２】
一方、クライアント−サーバモデルに基づくＨＴＴＰプロトコルの双方向性の弱さを解決するため、ＷｅｂＳｏｃｋｅｔプロトコル（ＲＦＣ６４５５）が、ＩＥＴＦにより策定された。ＷｅｂＳｏｃｋｅｔプロトコルは、一度、ＷｅｂＳｏｃｋｅｔコネクションが張られると、コネクションの終了要求がおこなわれない限り、コネクションは継続し続ける。
【００１３】
そして、コネクションが張られている間は、クライアント、サーバの両方から対等に、非同期でＷｅｂＳｏｃｋｅｔの電文を送信し、送られた電文をイベントとして非同期に受信することができる。
【００１４】
このＷｅｂＳｏｃｋｅｔの通信には、ｎｏｄｅ．ｊｓと呼ばれるライブラリが広く用いられており、このライブラリを使用することにより、クライアントおよびサーバにおいて、ＪａｖａＳｃｒｉｐｔ（登録商標）言語上で、容易に、非同期でＷｅｂＳｏｃｋｅｔ電文を送受信できるイベント駆動型のプログラムを記述することができる。
【００１５】
このようにＷｅｂＳｏｃｋｅｔプロトコルを用いた通信より、サーバからクライアントに対してだけではなく、従来では不可能だったクライアントからサーバにおけるリアルタイムでのＰＵＳＨ通信を行うことができる。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開２００６−１５７４５９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１７】
上記のＤＤＮＳによる通信においては、基本的に、クライアントとなる宅外機器１２からのＨＴＴＰ要求に、サーバとなるＨＣ４がレスポンスを返す形で行うため、項番（２）に記載されたＨＣ４のイベントを、宅外機器１２がリアルタイムに受け取りたい場合や、項番（３）に記載されたようにＨＣ４に接続された宅内機器４の動画情報を、宅外機器１２から見たい場合には、宅外機器１２から一定周期でポーリングをする必要があり、ネットワークのトラフィックや、宅外機器１２、ＨＣ４の処理負荷も増大しがちになるという問題点があった。
【００１８】
また、従来技術で説明したＷｅｂＳｏｃｋｅｔのようなリアルタイムな双方向プロトコルを、リモートアクセスに利用し、宅外機器１２と宅内機器５につながっているＨＣ４が、ＷｅｂＳｏｃｋｅｔプロトコルでリアルタイムな双方向通信をするためには、ＩＰレイヤーでできるだけ安定したネットワーク接続を保持し、双方が常に通信先を見つけられることが必要であり、また、送信したいデータを遅延なく送れるバンド幅が必要となるという問題点があった。
【００１９】
そこで、本発明は、上記問題点を解決するためになされたもので、その目的は、ＷｅｂＳｏｃｋｅｔのようなリアルタイムな双方向プロトコルを用いて、宅外機器と宅内機器の間で、上に示した家電機器制御を、できるだけリアルタイムに、かつ、軽い処理負荷で安定した接続を実現できるリモートアクセスシステムおよび宅内機器制御装置を提供することにある。
【課題を解決するための手段】
【００２０】
本発明のリモートアクセスシステムは、宅外装置とサーバと宅内機器制御装置とを有し、ネットワークでそれらが各々接続されたリモートアクセスシステムであって、双方向通信プロトコルを用いて、宅外装置とサーバ間で第一の接続を、サーバと宅内機器制御装置間で第二の接続を、宅外装置と宅内機器制御装置間で第三の接続をそれぞれ行い、接続された装置間で、送信元の装置識別情報、送信先の装置識別情報、電文種別、電文本体を含む電文の送受信を行うようにする。
【００２１】
そして、宅外装置が、宅内機器制御装置に対して電文種別が制御命令である電文を送信する場合には、第一の接続を利用して、宅外装置がサーバに電文を送信し、第二の接続を利用して、サーバが、宅内機器制御装置に電文を送信することによって、電文を受信した宅内機器制御装置は、制御命令に基づく制御を行い、宅内制御装置が、宅外装置に対して電文種別がストリーミングである電文を送信する場合には、第三の接続を利用して、宅内機器制御装置から宅外装置に電文を送信することによって、電文を受信した宅外装置は、ストリーミングの受信を行うようにする。
【発明の効果】
【００２２】
本発明によれば、ＷｅｂＳｏｃｋｅｔのようなリアルタイムな双方向プロトコルを用いて、宅外機器と宅内機器の間で、家電機器制御を、できるだけリアルタイムに、かつ、軽い処理負荷で安定した接続を実現することができる。
【図面の簡単な説明】
【００２３】
【図１】一実施形態に係るリモートアクセスシステムのシステム構成図である。
【図２】ホームゲートウェイの構成を示すブロック図である。
【図３】ホームコントローラの構成を示すブロック図である。
【図４】宅外機器の構成を示すブロック図である。
【図５】ホームコントローラの通信制御部のスタック構成を示す図である。
【図６】サーバのスタック構成を示す図である。
【図７】宅外機器の演算処理部が有する通信ソフトウェアのスタック構成を示す図である。
【図８】サーバとクライアント間でのＷｅｂＳｏｃｋｅｔによる双方向通信の手順を示すシーケンス図である。
【図９】一実施形態に係るリモートアクセスシステムでの通信を説明する模式図である。
【図１０】宅外機器とホームコントローラ間の直接電文のやり取りを示すシーケンス図である。
【図１１】ＷｅｂＳｏｃｋｅｔの電文通信で用いられる電文のフォーマットを示す模式図である。
【図１２】ホームコントローラから宅外機器へのイベント通知のシーケンス例を示すシーケンス図である。
【図１３】ホームコントローラからの映像を宅外機器でストリーミング再生する場合のシーケンス例を示すシーケンス図である。
【図１４】従来技術に係るＤＤＮＳによるインターネット上の通信を説明する模式図である。
【発明を実施するための形態】
【００２４】
以下、図１ないし図１３を用いて本発明に係る一実施形態を説明する。
先ず、図１ないし図４を用いて一実施形態に係るリモートアクセスシステム全体と各部の構成を説明する。
【００２５】
図１は、一実施形態に係るリモートアクセスシステムのシステム構成図である。図示のように、リモートアクセスシステムでは、家庭内ＬＡＮ１が、ホームゲートウェイ（ＨＧＷ）２を介して、インターネット３に接続され、家庭内ＬＡＮ１には、ホームコントローラ（ＨＣ）４(４ａ，４ｂ)を介して、宅内の家電機器５(５ａ，５ｂ)が接続されている。
【００２６】
家庭内ＬＡＮ１には、センサコントローラ６を介して、センサネットワーク７が接続され、そのセンサネットワーク７には各種センサ８が接続されている。なお、家電機器５とＨＣ４は一体化されていてもよく、家庭内ＬＡＮ１が、センサネットワーク７を兼ね、各種センサ８が家庭内ＬＡＮ１に接続される形態もありえる。
【００２７】
インターネット３には、サーバ１０が接続され、また、インターネット３に接続されたモバイルネットワーク１１を介して宅外機器１２ｂが接続される。また、インターネット３に直接、宅外機器１２ａが接続される形態もありえる。
【００２８】
次に、図２を用いて、ホームゲートウェイ(ＨＧＷ)２の構成について説明する。
ＨＧＷ２は、バス１０５を介して、制御部１０１、記憶部１０２が各々接続されており、制御部１０１が、記憶部１０２に記憶されたデータに基づいて演算処理を行う。また、電力計測部１０３は、宅内の家電機器の電力情報を収集する。通信処理部１０４は、家庭内のＨＣ４やセンサコントローラ６などとの宅内通信を処理し、外部通信処理部１０６は、インターネット３との通信処理を行い、ルーティング処理部１０７は、インターネット３と家庭内ＬＡＮ１との間のルーティングを行う。
【００２９】
次に、図３を用いてホームコントローラ(ＨＣ)４の構成について説明する。
ここでは、空調機器と監視カメラ用のＨＣ４の例として、空調機器コントローラ２００と監視カメラコントローラ２１０を図示している。
【００３０】
空調機器コントローラ２００は、家庭内ＬＡＮ１との通信制御部２０１、空調機器を制御する空調制御部２０２、リモコン制御部２０３からなり、通信制御部２０１、およびリモコン制御部２０３からの指示により、空調制御部２０２が、空調機器(図示せず)を制御する。
【００３１】
一方、監視カメラコントローラ２１０は、家庭内ＬＡＮ１との通信制御部２０１、監視カメラ(図示せず)の画像処理を行う画像処理部２１２、監視カメラを制御するカメラ制御部２１３からなり、通信制御部２０１からの指示により、カメラ制御部２１３が監視カメラを制御すると共に、監視カメラで撮影した映像を、画像処理部２１２で処理し、画像またはイベント情報として、通信制御部２０１を介し、家庭内ＬＡＮ１に送出する。
【００３２】
なお、空調機器は、カメラや人感センサなどの機能も備え、室内の映像や熱温度分布を解析しながら空調制御する機能を備えてもよく、その場合、ＨＣ４には、それらの機器の制御、解析し、家庭内ＬＡＮ１に送出する機能を併せ持つ。
【００３３】
次に、図４を用いて宅外機器１２の構成について説明する。
宅外機器１２は、演算処理部２３２、メモリ２３５を有しており、演算処理部２３２が、メモリ２３５に保持されるプログラムおよびワークデータにより、演算処理を行う。また、通信制御部２３１は、モバイルネットワーク１１、または、インターネット３との通信を行う。
【００３４】
ストレージ２３６は、演算処理部２３２が実行するプログラムやデータを格納する記憶装置である。また、入力制御部２３３により入力されるユーザ操作に従い、宅外機器１２で処理した結果が表示部２３４に表示される。
【００３５】
宅外機器１２は、一般的には、スマートフォンやタブレット端末と呼ばれるタッチパネル画面を備えるモバイル機器やノート型のパーソナルコンピュータ、デスクトップ型のパーソナルコンピュータなどが用いられる。
【００３６】
次に、図５ないし図７を用いて各装置が備える通信プログラムのスタック構成について説明する。ここで、スタック構成とは、通信上のプロトコルおよびその上で動作するアプリケーションプログラムを階層化して示したものである。
【００３７】
図５は、ホームコントローラ４の通信制御部２０１のスタック構成を示す図である。
ＨＣ４の通信制御部２０１のスタックは、ＴＣＰ／ＩＰプロトコル上で動作するＨＴＴＰ／ＨＴＴＰＳプロトコル３０２と同時に、ＷｅｂＳｏｃｋｅｔプロトコル３０３を備えており、ＨＴＭＬ５とＪａｖａＳｃｒｉｐｔが実行する実行エンジン３０４が、その両方の通信プロトコルを利用する構成である。また、実行エンジンの上位階層には、ＨＴＴＰプロトコルとＷｅｂＳｏｃｋｅｔプロトコルを統合的に利用できるイベント駆動型のライブラリｎｏｄｅ．ｊｓ３０５が搭載されており、このライブラリを使って、Ｗｅｂアプリケーション３０６や、サーバアプリケーション３０７を動作させる。
【００３８】
次に、図６を用いてサーバ１０のスタック構成について説明する。
図示のように、サーバ１０のスタックは、ＴＣＰ／ＩＰプロトコル上で動作するＨＴＴＰ／ＨＴＴＰＳプロトコル３０２と同時に、ＷｅｂＳｏｃｋｅｔプロトコル３０３を備えており、ＨＴＭＬ５とＪａｖａＳｃｒｉｐｔを実行することのできるＷｅｂサーバ３１１、ＷｅｂＳｏｃｋｅｔサーバ３１２が、その両方の通信プロトコルを利用する構成である。サーバ上には、ＨＴＴＰプロトコルとＷｅｂＳｏｃｋｅｔプロトコルを統合的に利用できるイベント駆動型のライブラリｎｏｄｅ．ｊｓ３０５が搭載されている。また、サーバ１０は、クライアントを認証する認証サーバ３１０、リモートアクセスのアクセス先のＩＰアドレスとポート番号を管理するＳＴＵＮ（Simple Traversal of UDP through NATs）サーバ３１３を備えており、これらの下位階層のスタックの機能を使って、サーバアプリケーション３０を動作させる。なお、ＳＴＵＮとは、音声、映像、文章などの双方向リアルタイムＩＰ通信を行うアプリケーションにおいて、ＮＡＴ traversal（ＮＡＴ通過）の方法の一つとして使われる標準化されたインターネットプロトコルである。
【００３９】
次に、図７を用いて宅外機器１２の演算処理部２０１が有する通信ソフトウェアのスタック構成について説明する。
図示のように、宅外機器１２の演算処理部２０１が有する通信ソフトウェアのスタックは、ＴＣＰ／ＩＰプロトコル上で動作するＨＴＴＰ／ＨＴＴＰＳプロトコル３０２と同時に、ＷｅｂＳｏｃｋｅｔプロトコル３０３を備えており、ＨＴＭＬ５とＪａｖａＳｃｒｉｐｔが実行できる実行エンジン３０４が、その両方の通信プロトコルをから利用するようになっている。また、実行エンジン３０４上には、ＨＴＴＰプロトコルとＷｅｂＳｏｃｋｅｔプロトコルが統合的に利用できるイベント駆動型のライブラリｎｏｄｅ．ｊｓ３０５が搭載されており、このライブラリを使って、Ｗｅｂアプリケーション３０６を動作させる。
【００４０】
次に、図８を用いて、以上説明したスタック構成の下でのＷｅｂＳｏｃｋｅｔプロトコルの概要を説明する。図８は、サーバとクライアント間でのＷｅｂＳｏｃｋｅｔによる双方向通信の手順を示したシーケンス図である。
【００４１】
ＷｅｂＳｏｃｋｅｔプロトコルは、クライアント１３から、サーバ１０に対し、ＨＴＴＰプロトコルの拡張パラメータを用いたＷｅｂＳｏｃｋｅｔコネクション要求を行い（３１）、サーバ１０が承諾してレスポンスを返すことにより、コネクションが張られ、プロトコルが開始される（３２）。
【００４２】
一度、ＷｅｂＳｏｃｋｅｔコネクションが張られると、コネクションの終了要求（３６）がおこなわれない限り、コネクションは継続し続ける。そして、コネクションが張られている間は、クライアント１３、サーバ１０の両方から、非同期でＷｅｂＳｏｃｋｅｔの電文を送信し（３３ａ，３３ｂ）、送られた電文をイベントとして非同期に受信することができる。
【００４３】
これにより、クライアント１３からサーバ１０だけでなく、ＨＴＴＰプロトコルなどの従来技術では不可能だったサーバ１０からクライアント１３に対しての通信がおこなえることになり、リアルタイムでＰＵＳＨ通信を行うことができる。
【００４４】
また、ＷｅｂＳｏｃｋｅｔでは、通常の電文通信とは異なる新たなＷｅｂＳｏｃｋｅｔ上のサブプロトコルを追加することができ、クライアント１３が、サーバ１０にサブプロトコル切替要求（３４）を行い、サーバから正常終了レスポンスが返る（３５）ことにより、追加されたサブプロトコルに切り替えることができる。
【００４５】
このようなサブプロトコルとしては、例えば、動画や音声のストリーミングに最適化したバッファリングとフロー制御を行うストリーミングサブプロトコルなどが考えられる。
【００４６】
次に、図９ないし図１３を用いて一実施形態に係るリモートアクセスシステムの処理について説明する。
図９は、リモートアクセスシステムでの通信を説明する模式図である。図１０は、宅外機器からホームコントローラに対して、ＷｅｂＳｏｃｋｅｔにより通信するときの初期処理と、その後にサーバ経由で宅外機器からホームコントローラが、制御電文のやり取りを行う場合、宅外機器からホームコントローラが直接電文のやり取りを行う場合のシーケンスを示すシーケンス図である。
【００４７】
インターネット３に接続されたＨＧＷ２には、宅内ＬＡＮを介しＨＣ４が接続され、また、ＨＣ４には宅内機器５がつながっている。また、インターネット３には、サーバ１０と、宅外機器１２が接続されている。
【００４８】
サーバ１０は、宅外機器１２やＨＣ４がサーバ１０にアクセスする際の認証サーバ３１０、ＨＴＴＰサーバ３１１、ＷｅｂＳｏｃｋｅｔサーバ３１２、ＳＴＵＮサーバ３１３からなり、リモートアクセスできる宅外機器１２とＨＣ４の対応関係を記述するＰａｒｉｎｇ情報４１１、および、ＨＣ４を介して通知される宅内機器５の動作状態を保持する宅内機器状態４１２の情報を保持する。
【００４９】
ＨＣ４は、起動時の初期処理で、ＨＧＷ２に対し、ＵＰｎＰプロトコルにより、宅外からのリモートアクセスに使用するためのポートの開放を要求し(図９の４２０)、図２に示したＨＧＷ２のルーティング制御部１０７に設定する。
【００５０】
設定が終わると、ＨＣ４のＷｅｂアプリケーション３０６が、ＳＴＵＮサーバ３１３にアクセスし、ＨＣ４を一意に識別する宅内機器識別情報とともに、ＨＣ４のインターネット上のグローバルＩＰアドレスと、割り当てられたポート番号を通知する。
【００５１】
さらに、ＨＣ４がＷｅｂＳｏｃｋｅｔサーバ３１３にコネクションを要求し（４３１、図１０の５０３）、サーバが許諾する（５０４）と、常時、ＷｅｂＳｏｃｋｅｔサーバ３１３とＨＣ４の間にコネクションが張られた状態になる。
【００５２】
一方、宅外機器１２には、宅外機器１２を一意に識別する宅外機器識別情報が割り当てられており、リモートアクセス用のＷｅｂアプリケーションを起動したときに、サーバ１０に接続し、ＨＴＴＰ３１１にアクセスしてＰａｒｉｎｇ情報４１１から、宅外機器１２から操作できるＨＣ４を知る。
【００５３】
ここで、例えば、宅外機器１２に接続された表示装置に、操作できるＨＣ４のリストを表示させ、操作したいＨＣ４をユーザに選択させる。Ｗｅｂアプリケーションは、ＳＴＵＮサーバ３１３にアクセスして、選択されたＨＣ４に対して、宅外からそのＨＣ４にアクセスするＩＰアドレスとポート番号を知る。
【００５４】
次に、宅外機器１２から、ＷｅｂＳｏｃｋｅｔサーバ３１３とＨＣ４にコネクションを要求し（４３１、５０１、５０５）、サーバが許諾し（５０２）、ＨＣ４が許諾する(５０６）と、宅外機器１２とＷｅｂＳｏｃｋｅｔサーバ３１３との間、宅外機器１２とＨＣ４の間にコネクションが張られた状態になる。
【００５５】
この状態になると、ＷｅｂＳｏｃｋｅｔ電文通信を用いて、宅外機器１２、ＷｅｂＳｏｃｋｅｔサーバ３１３、ＨＣ４の間で、非同期でリアルタイムのデータ送受信を行うことができる。
【００５６】
この状態で、宅外機器１２から、ＨＣ４に宅内機器５の制御を指示する場合、サーバ１０に対して、宛先の宅内機器識別情報を付与して制御電文を送り（４３２ａ，５１０）、サーバ１０が宛先を識別して、対象のＨＣ４に対し、制御元の宅外機器識別情報を付与してＨＣ４に送る（４３２ｂ，５１１）ことにより、宅外機器１２からの制御電文をＨＣ４が受け取り、それに対応する処理を実行する。
【００５７】
その処理結果は、同様に、ＨＣ４から、宛先の宅外識別情報を付与してたレスポンス電文をサーバ１０に送り(４３２ｂ，５１２)、宛先を識別して、対象の宅外機器１２に対し、ＨＣ４の宅内機器識別情報を付与して宅外機器１２に送る（４３２ａ，５１３）ことにより、宅外機器１２は結果を知る。
【００５８】
このようにサーバ１０経由で制御を行うメリットは、複数の宅外機器１２が同時に一つのＨＣ４に対し、制御を行うことで意図しない挙動が発生しないようサーバ１０で宅外機器１２の認証を行うことため、サーバ１０側で宅外機器１２からの制御を排他制御できること、サーバ１０で宅内機器状態４１２を、ＨＣ４から定期的に取得して保持しておくことにより、宅外機器１２からＨＣ４の状態取得を行う場合に、すばやく情報を得ることができることがある。
【００５９】
宅外機器１２から、ＨＣ４に、直接、制御電文を送ってもよく(４３２ｃ，５２０)、その場合、サーバ１０経由で送るより、制御の遅延を減らすことができるが、一方で、複数の宅外機器１２からの制御の排他制御をＨＣ１０で行う必要があり、ＨＣ１０の処理負荷が増大する問題がある。
【００６０】
一方で、例えば、宅内機器５が監視カメラの場合に、宅外機器１２から、監視カメラのアングルやズームを制御すると共に、カメラ動画を宅外機器１２で再生したい場合がある。
【００６１】
このようなケースでは、カメラ動画は、ＭｏｔｉｏｎＪＰＥＧや、Ｈ．２６４／ＡＶＣなどの形式でストリーミング配信することが多いが、このようなデータ量の多いマルチメディアデータを、サーバ１０経由で、ＨＣ４から宅外機器１２に転送すると、サーバ１０の処理負荷が増大してしまう。
【００６２】
そのため、宅外機器１２からＨＣ４に動画配信開始の制御電文を送り(４３２ｃ，５２０)、成功のレスポンスが返ってきたら、その後のマルチメディアのストリーミング伝送は、ＨＣ４と宅外機器１２をつなぐコネクションを利用し、マルチメディアデータを直接伝送すると(４３２ｃ，５２１)、サーバ１０の負荷を軽減できる。
【００６３】
このように、ＷｅｂＳｏｃｋｅｔで行いたい処理内容に応じ、データ量が少なく、排他制御が必要な制御電文などは、サーバ１０を介して、ＨＣ４との通信を行い、動画のストリーミングなどのマルチメディアデータの伝送は、サーバ１０経由せず、直接通信を行うことで、システム全体の負荷を軽減することができる。なお、マルチメディアデータの伝送を行うときの通信シーケンスは、後に図１３を用いて具体的に説明する。
【００６４】
ここで、図１１を用いてＷｅｂＳｏｃｋｅｔの電文通信で用いられる電文のフォーマットを説明する。
電文本体６０の前に、ヘッダ情報として、宛先機器６１、送出元機器６３、電文種別６２が記述されている。宛先機器６１、送出元機器６３には、それぞれ宅外機器識別情報、宅内機器識別情報が記述され、電文種別６２は、電文本体６０の種別を示している。なお、宛先機器６１には、複数の宅外機器を示す識別情報を記述することもでき、その電文をサーバ１０が受け取ると、図９に示したＰａｒｉｎｇ情報４１１に登録されたすべての宅外機器１２に電文をマルチキャスト伝送することができる。
【００６５】
電文種別６２としては、非同期で通知したい情報を送るイベント(後述の図１２の５５１、５５２)、コマンド、リクエスト(５１０、５１１)、レスポンス(５１２、５１３)、ストリーミング(後述の図１３の５８１)などがあり、イベントの場合その電文６０にはイベント内容６１を格納し、コマンドの場合はレスポンスを必要としないコマンド内容６２を格納する。
【００６６】
電文種別６２が、リクエストの場合は、レスポンスが必要な要求内容に、リクエストを一意に識別するリクエスト識別子を付与して格納し、レスポンスの場合は、返信内容に、返信元のリクエスト識別子を付与して格納することにより、非同期で複数要求したリクエストに対し、どのリクエストに対するレスポンスなのかを識別することができる。
【００６７】
電文種別６２が、ストリーミングの場合は、動画などのマルチメディアデータを、パケット分割し電文本体６０に格納する。
【００６８】
次に、図１２を用いて、宅内機器５が宅外機器１２にリアルタイムのイベントを通知する場合のシーケンスを説明する。
ＨＣ４が、制御するセンサやカメラなどの情報を解析し、重大なイベントを認識する場合がある。
【００６９】
例えば、監視カメラで、泥棒の侵入を発見したり、監視カメラや空調機器が持つ人感センサなどで、病人やペットの生体情報に異常を発見したりした場合、緊急のイベントとして、速やかに宅外機器１２にイベントを通知したい。
【００７０】
ＨＣ４が緊急のイベントを検知すると、もし、そのとき、ＨＣ４と宅外機器１２のＷｅｂＳｏｃｋｅｔコネクションが張られている状態なら、ＨＣ４から宅外機器１２に、直接イベントの電文を送る（５５０）。
【００７１】
このとき、ＷｅｂＳｏｃｋｅｔコネクションが張られていても、宅外機器１２がモバイルネットワーク１１に接続されており、接続状態が不安定だったり、一時的に接続できない場合もある。この場合、電文が送れずエラーになる。
【００７２】
また、長時間ネットワーク接続が切れた状態が続いた場合に、タイムアウトでＷｅｂＳｏｃｋｅｔコネクションが切られてしまう場合もある。
【００７３】
このような場合、ＨＣ４は、サーバ１０を介して、宅外機器１２にイベント電文を通知する（５５１）。
【００７４】
サーバ１０は、宅内機器状態４１２にＨＣ４のイベント情報を登録し、サーバ１０と宅外機器１２のＷｅｂＳｏｃｋｅｔコネクションが張られている状態なら、サーバ１０から宅外機器１２に、イベントの電文を送る（５５２）。
【００７５】
上述のように、ＷｅｂＳｏｃｋｅｔコネクションが張られていても、宅外機器１２がモバイルネットワーク１１に接続されており、接続状態が不安定だったり、一時的に接続できない場合には、電文が送れずエラーになるが、この場合は、サーバに電文を保持しておき、時間を空けて、通信状態が回復するまで再送を行い、できるだけ速やかに宅外機器１２にイベントが通知されるようにする。
【００７６】
また、長時間ネットワーク接続が切れた状態が続いた場合に、タイムアウトでＷｅｂＳｏｃｋｅｔコネクションが切られてしまうが、その場合、宅外機器１２が、以前と異なるＩＰアドレスでインターネットに再接続することがある。
【００７７】
この場合も、宅外機器１２は、宅外機器識別情報を使って、サーバ１０と認証してアクセスし、ＷｅｂＳｏｃｋｅｔコネクションを張り直すため（５５３，５５４）、再度、ＷｅｂＳｏｃｋｅｔコネクションが張られた場合には、直ちに、宅内機器状態４１２に記憶したイベント情報を、宛先の宅外機器１２に通知する（５５５）ことができる。
【００７８】
また、ＨＣ４から、宛先として全宅外機器の識別情報を記載し、サーバ１０に送信することにより、サーバ１０は、登録された全宅外機器に対し、イベント情報を送信することもできる。
【００７９】
次に、図１３を用いて、監視カメラのような宅内機器５の映像を宅外機器１２で再生する場合のシーケンスを説明する。図１３は、ホームコントローラからの映像を宅外機器でストリーミング再生する場合のシーケンス例を示すシーケンス図である。
【００８０】
宅外機器１２が、宅内機器５を制御したいとき、例えば、監視カメラなどの宅内機器５の電源を入れたり、アングルを変えたりする場合には、宅外機器１２からサーバ１０を介して（５６０）、ＨＣ４に制御内容を示すコマンド電文を送る（５６１）。ＨＣ４では、コマンドに従い宅内機器を制御し、その結果を、サーバ１０を介して（５６２）、宅外機器１２にレスポンス電文を返す（５６３）。
【００８１】
次に、宅外機器１２のユーザ操作により、ストリーミングの開始を指示すると、宅外機器１２から、サーバ１０経由で（５７０）、ストリーミング開始のコマンド電文をＨＣ４に送る（５７１）。そして、ＨＣ４がストリーミング可能であれば、サーバ１０経由で（５７２）、その旨のレスポンス電文を返し（５７３）、ストリーミングが開始される。
【００８２】
ストリーミングが開始されると、動画などのマルチメディアデータをＷｅｂＳｏｃｋｅｔのパケットに分割し、ＨＣ４から直接宅外機器１２に対し、ＰＵＳＨ送信する（５８１）。
【００８３】
ストリーミングを終了したい場合は、宅外機器１２から、サーバ１０経由で（５９０）、ストリーミング終了のコマンド電文をＨＣ４に送り（５９１）、ＨＣ４がストリーミング終了したときには、サーバ１０経由で（５９２）、その旨のレスポンス電文を返す（５９３）。
【００８４】
以上のように、本実施形態では、宅外機器１２が、コマンドのようなデータ量が少ないが排他制御が必要な電文と、ストリーミングのようなデータ量が多く伝送負荷が重い電文で、利用するＷｅｂＳｏｃｋｅｔのコネクションを選択して変えるようにする。そのことにより、複数の宅外機器１２の排他制御をサーバ１０で行いながら、動画などのストリーミング配信は、ＨＣ４から直接宅外機器１２にＰＵＳＨ伝送することにより、サーバ１０の負荷を抑えられ、ストリーミングの遅延も減らせるメリットがある。
【００８５】
なお、ストリーミング開始要求後、宅外機器１２から、ＨＣ４に対して、オプションで、追加されたサブプロトコルに切り替えられるサブプロトコル切替要求をすることもでき（５９５）、ＨＣ４が要求されたサブプロトコルをサポートするなら、宅外機器１２にその旨レスポンスを返し（５９６）、サブプロトコルを切り替えることができる。
【００８６】
サブプロトコルが切り替わった後の、マルチメディアデータの伝送（５８１）は、サブプロトコルで規定したパケットの伝送形式に従う。
【００８７】
このように、必要に応じ、動画ストリーミングに適したサブプロトコルに切り替えることにより、より伝送効率がよくスムーズな動画再生を行うことができる。
【００８８】
なお、本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【００８９】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。
また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Solid State Drive）等の記憶装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【００９０】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【００９１】
２…ホームゲートウェイ
４…ホームコントローラ
５…宅内機器
１０…サーバ
１２…宅外機器
５０…ＷｅｂＳｏｃｋｅｔ電文
３１０…認証サーバ
３１１，４０２…ＨＴＴＰサーバ
３１２，４０３…ＷｅｂＳｏｃｋｅｔサーバ
３１３，４０４…ＳＴＵＮサーバ
４１１…Ｐａｒｉｎｇ情報
４１２…宅内機器状態
【図１】
2015106358.tif 000003
【図２】
2015106358.tif 000004
【図３】
2015106358.tif 000005
【図４】
2015106358.tif 000006
【図５】
2015106358.tif 000007
【図６】
2015106358.tif 000008
【図７】
2015106358.tif 000009
【図８】
2015106358.tif 000010
【図９】
2015106358.tif 000011
【図１０】
2015106358.tif 000012
【図１１】
2015106358.tif 000013
【図１２】
2015106358.tif 000014
【図１３】
2015106358.tif 000015
【図１４】
2015106358.tif 000016