【文献】
石川 憲洋 他,P2Pネットワーキングプラットフォーム,NTT DoCoMoテクニカル・ジャーナル Vol.12 No.3,社団法人電気通信協会,p.17−24,2004年10月1日
【文献】
泉水 翔吾,Webフロントエンド最前線 流行に踊らされない技術動向 第1回 WebRTCでブラウザ間P2P通信,WEB+DB PRESS Vol.81,(株)技術評論社,p.110−117,2014年7月25日
(58)【調査した分野】(Int.Cl.,DB名)
端末と、前記端末を管理する管理装置と、前記端末と前記管理装置との間で行われるP2P通信を制御する通信制御装置とを有する端末管理システムにおける端末管理方法であって、
前記通信制御装置が、
前記端末を識別する端末識別子と前記端末のアドレス情報とを含む端末登録情報と、前記管理装置を識別する管理装置識別子と前記管理装置のアドレス情報とを含む管理装置登録情報と、を記憶手段に記憶させるステップと、
前記通信制御装置が、
前記端末登録情報又は前記管理装置登録情報に基づいて、前記端末と前記管理装置との間で送受信される通信確立信号を中継するステップと、
前記端末が、
前記管理装置識別子を含む通信確立信号を前記通信制御装置に送信することで、前記P2P通信を行うための通信チャネルを確立するステップと、前記端末の状態を示す状態情報を、前記通信チャネルを介して前記管理装置に送信するステップと、
前記管理装置が、前記端末の状態を示す状態情報を定期的に前記管理装置に送信するのか否かの指示を、前記通信チャネルを介して前記端末に送信するステップと
を有する端末管理方法。
【発明を実施するための形態】
【0011】
以下、図面を参照して実施の形態について説明する。各図面において、同一構成部分には同一符号を付し、重複した説明を省略する場合がある。
【0012】
なお、以下の説明においてはWebRTC(Web Real-Time Communication)によるP2P通信を例として説明する。WebRTCは、2つの機器の間でWebブラウザを用いたP2P通信を行うことで、Webブラウザ間でリアルタイムなP2P通信を実現するための技術である。なお、WebRTCを利用する場合、必ずしもWebブラウザを用いる必要は無く、OS(Operating System)上で動作する、WebRTCに対応したネイティブアプリケーションソフトなどを用いてもよい。WebRTCのAPIを実行可能な環境を有する機器であれば、WebRTCを利用することができる。
【0013】
なお、実施の形態に係る端末管理システムは、WebRTC以外の技術を用いたP2P通信にも適用することができる。
【0014】
[第一の実施の形態]
<概要>
図1は、第一の実施の形態に係る端末管理システムの構成の一例を示す図である。第一の実施の形態に係る端末管理システムは、端末10と、端末10を管理する管理装置30と、端末10と管理装置30との間で行われる通信を制御する通信制御装置20とを有する。
【0015】
端末10と管理装置30と通信制御装置20とは、それぞれネットワークを介して相互に通信可能なように接続されている。
【0016】
通信制御装置20は、WebRTCの仕様に規定される接続手順により、端末10と管理装置30との間でP2Pを行うための通信チャネル(以下、「Data Channel」という)が確立される際に、端末10と管理装置30との間で送受信されるシグナリング信号を中継する機能を有する。また、通信制御装置20は、当該シグナリング信号を中継する際に必要になる、通信制御装置20が通信元及び通信先を一意に識別するための識別子(以下、「PeerID」という)を管理する。
【0017】
端末10は、Data Channelを介して管理装置30と通信を行う。また、端末10の状態を管理する機能、端末10の状態を示す情報(以下、「端末状態情報」という)を管理装置30に送信する機能及び管理装置30からの制御を受け付ける機能を有している。端末10は、例えば家電又はセンサである。家電の場合、端末状態情報の具体例として、例えば自身の消費電力及びドア開閉回数といった情報が想定される。センサの場合、端末状態情報の具体例として、例えば自身の周辺の温度や湿度、ドアや窓の施錠状態、カメラなどの撮影データといった情報が想定される。
【0018】
また、管理装置30からの制御の具体例として、電源ON/OFF、温度設定の変更、鍵の開錠/施錠、端末状態情報を定期的に管理装置30に送信するのか否かの指示などが想定される。
【0019】
なお、第一の実施の形態に係る端末10は、必ずしも処理能力が比較的低い機器に限られない。例えば、PC、携帯電話、スマートフォン、又はタブレット端末等でもよい。第一の実施の形態に係る端末10は、通信機能を有する機器であれば、どのような端末10であってもよい。
【0020】
なお、第一の実施の形態に係る端末管理システムは、端末10は1台に限られない。第一の実施の形態に係る端末管理システムは、複数の端末10を有するようにしてもよい。
【0021】
管理装置30は、端末10との間でData Channelを介して、端末10に制御信号を送信することで端末10を制御する。また、管理装置30は、Data Channelを介して端末状態情報を取得し、取得した情報をデータベースに蓄積する。
【0022】
また、管理装置30は、端末10を管理する管理者に対し、データベースに蓄積されている端末状態情報の参照を可能とする機能を有するようにしてもよい。
【0023】
また、管理装置30は、WebRTCによる通信を実現するモジュール(以下、「WebRTCモジュール」という)を、端末10に提供する機能を有する。
【0024】
<ハードウェア構成>
図2は、第一の実施の形態に係る通信制御装置のハードウェア構成の一例を示す図である。第一の実施の形態に係る通信制御装置20は、CPU101と、ROM102と、RAM103と、HDD104と、操作部105と、表示部106と、ドライブ装置107と、NIC(Network Interface card)108とを有する。
【0025】
CPU101は、通信制御装置20の全体制御を行うプロセッサである。CPU101、HDD104等に記憶されたオペレーティングシステム、アプリケーション、各種サービス等のプログラムを実行し、通信制御装置20の各種機能を実現する。ROM102には、各種のプログラムやプログラムによって利用されるデータ等が記憶される。RAM103は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。HDD104には、各種情報及びプログラム等が記憶される。
【0026】
操作部105は、ユーザからの入力操作を受け付けるためのハードウェアであり、例えばキーボード又はマウスである。表示部106は、ユーザに向けた表示を行うハードウェアである。
【0027】
ドライブ装置107は、プログラムを記録した記憶媒体109からプログラムを読み取る。ドライブ装置107によって読み取られたプログラムは、例えば、HDD104にインストールされる。NIC108は、通信制御装置20をネットワークに接続し、データの送受信を行うための通信インタフェースである。
【0028】
なお、記憶媒体109とは、非一時的(non-transitory)な記憶媒体を言う。記憶媒体109の例としては、磁気記憶媒体、光ディスク、光磁気記憶媒体、不揮発性メモリなどがある。
【0029】
管理装置30のハードウェア構成は、例えば
図2と同一であるため説明は省略する。
【0030】
なお、通信制御装置20及び管理装置30に用いるハードウェアリソースとして、例えばクラウドサービスにより提供されるハードウェアリソースを用いるようにしてもよい。
【0031】
端末10のハードウェア構成は、例えば
図2と同一であるため説明は省略する。なお、端末10は、
図2に記載されるハードウェアを全て有する必要は無い。端末10の動作に必要最小限のハードウェアを有していればよい。また、端末10の動作に必要な機能(例えば、家電固有の機能など)を実行するために必要なハードウェアを有するようにしてもよい。
【0032】
<ソフトウェア構成>
(端末)
図3は、第一の実施の形態に係る端末のソフトウェア構成の一例を示す図である。第一の実施の形態に係る端末10は、記憶手段201と、通信手段202と、ID登録要求手段203と、接続確立手段204と、送信手段205と、制御受付手段206とを有する。これらの各手段は、端末10が備えるWebブラウザ又はSDK(Software Development Kit)ランタイムの上で動作するWebRTCモジュールがCPU101に実行させる処理、又は、端末10にインストールされた1以上のプログラムがCPU101に実行させる処理により実現される。
【0033】
記憶手段201は、端末10の動作状態、端末10が有する各種機能が収集した情報等の端末状態情報をRAM103等に記憶する。記憶手段201は、現時点の端末状態情報だけではなく、過去の端末状態情報も記憶するようにしてもよい。
【0034】
通信手段202は、例えばNIC108を介して、管理装置30又は通信制御装置20と通信を行う。
【0035】
ID登録要求手段203は、端末10のPeerIDを通信制御装置20に登録させる。
【0036】
接続確立手段204は、WebRTCの仕様に規定される接続手順により、通信制御装置20を介してシグナリング信号を管理装置30と送受信することで、管理装置30との間でP2P通信を行うためのData Channelを確立する。
【0037】
送信手段205は、接続確立手段204により確立されたData Channelを通じて、管理装置30に端末状態情報を送信する。
【0038】
制御受付手段206は、接続確立手段204により確立されたData Channelを通じて、管理装置30からの制御信号を受け付ける。また、当該制御信号に基づいて、端末10が有する各種機能を制御する。管理装置30からの制御指示の一例は、例えば、端末状態情報を定期的に管理装置30に送信するのか否かの指示、電源ON/OFFの指示、温度設定の変更、鍵の開錠/施錠などである。
【0039】
(通信制御装置)
図4は、第一の実施の形態に係る通信制御装置のソフトウェア構成の一例を示す図である。第一の実施の形態に係る通信制御装置20は、記憶手段301と、中継手段302と、ID管理手段303とを有する。
【0040】
記憶手段301は、RAM103、HDD104、又は通信制御装置20に接続される外部記憶装置等を用いて実現可能である。記憶手段301は、ID登録情報を記憶する。
【0041】
中継手段302は、WebRTCの仕様に規定される接続手順を用いて、端末10と管理装置30との間で送受信されるシグナリング信号を中継する。
【0042】
ID管理手段303は、端末10又は管理装置30からPeerIDの登録要求を受けてPeerIDを生成し、生成したPeerIDと当該登録要求の送信元である端末10又は管理装置30のアドレス情報(例えば、登録要求に含まれるIPアドレス)とが対応づけられたID登録情報を記憶手段301に格納する。またID管理手段303は、生成したPeerIDを当該登録要求の送信元である端末10又は管理装置30に通知する。ID管理手段303は、同一の端末10又は管理装置30からPeerIDの登録要求を再度受けた場合、登録要求ごとに異なるPeerIDを生成するようにしてもよいし、過去に割り当てたPeerIDを再利用するようにしてもよい。端末10又は管理装置30は、異常発生等の要因により、再度PeerIDの登録要求を通信制御装置20に送信することが想定し得るためである。
【0043】
なお、PeerIDは、必ずしもID管理手段303で生成されるようにする必要はなく、予め決められたPeerIDが用いられるようにしてもよい。この場合、ID管理手段303は、PeerIDを含む登録要求を端末10又は管理装置30から受信し、受信したPeerIDと当該登録要求の送信元である端末10又は管理装置30のアドレス情報とが対応づけられたID登録情報を記憶手段301に格納するようにする。
【0044】
また、ID管理手段303は、管理装置30からの要求に応じて、記憶手段301に格納されている全ての(又は管理装置30から要求された範囲の)PeerIDを管理装置30に送信する。
【0045】
(管理装置)
図5は、第一の実施の形態に係る管理装置のソフトウェア構成の一例を示す図である。第一の実施の形態に係る管理装置30は、記憶手段401と、通信手段402と、ID登録要求手段403と、接続確立手段404と、制御手段405と、ID取得手段406と、Webサーバ407と、認証手段408と、情報受付手段409とを有する。これらの各手段は、管理装置30が備えるWebブラウザ又はSDKランタイムの上で動作するWebRTCモジュールがCPU101に実行させる処理、又は、管理装置30にインストールされた1以上のプログラムがCPU101に実行させる処理により実現される。
【0046】
記憶手段401は、RAM103、HDD104、又は管理装置30に接続される外部記憶装置等を用いて実現可能である。記憶手段401は、端末情報と、認証情報と、Webページ情報とを記憶する。端末情報は、端末10のPeerIDと当該端末10の端末状態情報とが対応付けられた情報である。なお、端末状態情報は、例えばビデオカメラの撮影動画など、データサイズが大きい場合も想定され得る。従って、端末状態情報の実データを管理装置30に接続される外部記憶装置に記憶させるようにしておき、端末情報には、端末10のPeerIDと当該実データの格納場所とが対応づけられた情報が設定されるようにしてもよい。認証情報は、管理装置30にアクセスする端末10又は端末10を管理する管理者を認証する際に利用される情報である。Webページ情報は、端末10用のWebRTCモジュール、及び、端末10を管理する管理者に対して端末状態情報を参照させるためのWebページである。なお、記憶手段401は、管理装置30用のWebRTCモジュールを記憶するようにしてもよい。
【0047】
通信手段402は、NIC108を介して、端末10又は通信制御装置20と通信を行う。
【0048】
ID登録要求手段403は、管理装置30のPeerIDを通信制御装置20に登録させる。
【0049】
接続確立手段404は、WebRTCの仕様に規定される接続手順により、通信制御装置20を介してシグナリング信号を端末10と送受信することで、端末10との間でData Channelを確立する。
【0050】
制御手段405は、Data Channelを介して、端末10を制御する制御信号を端末10に送信する。
【0051】
ID取得手段406は、端末10又は通信制御装置20から端末10のPeerIDを受信し、受信したPeerIDを、端末情報に新たなレコードを追加して記憶手段401に格納する。
【0052】
Webサーバ407は、端末10からの要求を受けて、端末10用のWebRTCモジュールを提供する。なお、端末10用のWebRTCモジュールには、管理装置30のPeerIDが含まれている。また、Webサーバ407は、端末管理システムを用いて端末10を管理する管理者に対して、管理装置30が記憶している端末状態情報を参照させるためのWebページを公開する機能を有するようにしてもよい。
【0053】
認証手段408は、端末10に対してWebRTCモジュールを提供する際に、認証情報に基づいて、不正な端末10がWebRTCモジュールを取得しようとしていないかを確認するための認証を行う。また、認証手段408は、管理者に端末状態情報を参照させるためのWebページを表示する際に、認証情報に基づいて不正な管理者からのアクセスでないかを確認するための認証を行う。
【0054】
情報受付手段409は、端末10から受信した端末状態情報を、端末情報のうち当該端末10のレコードに格納する。
【0055】
図6は、端末情報及び認証情報の一例を示す図である。端末情報は、端末10のPeerIDと端末状態情報(状態A、状態B、・・・)とが対応付けられた情報である。認証情報は、グループIDとパスワードとが対応付けられた情報である。
【0056】
ここで、端末10のPeerIDは、端末10を一意に識別するIDと、端末10が所属するグループIDとを結合させたIDである。例えば、
図6に示すPeerID「abc.A」は、端末10を一意に識別するID「abc」と、端末10が属するグループIDである「A」とが結合されている。
【0057】
グループIDとは、複数のグループを一意に識別するためのIDであり、一つのグループには1又は複数の端末10を所属させることができる。グループIDを含むPeerIDを用いることで、管理装置30は、どの端末10がどのグループに属しているかを把握することが可能である。例えば、ある管理者の宅内に存在する全ての家電にはグループID「A」を割り当て、他の管理者の宅内に存在する家電にはグループID「C」を割り当てるようにすることで、管理装置30は、ある管理者の宅内に存在する家電と、他の管理者の宅内に存在する家電とを区別することができる。また、これにより、管理装置30のWebサーバ407は、管理者に端末状態情報を参照させるためのWebページを公開する際、その管理者が所属するグループの端末10に関する端末状態情報のみを公開するようにすることができる。
【0058】
端末状態情報は、1又は複数の情報(状態A、状態B、・・・)を含むことができる。端末状態情報に含まれる情報の数に制限はない。
【0059】
パスワードは、グループIDに対応づけて記憶されている。認証手段408は、端末10又は管理者からのアクセスを受け付ける際に、グループID及びパスワードが認証情報に存在するかを確認することで、端末10又は管理者が、正規の端末10又は管理者であることを確認することができる。
【0060】
<処理手順>
(PeerID登録シーケンス)
図7は、PeerIDを登録する処理手順の一例を示すシーケンス図である。通信制御装置20にPeerIDが登録されることで、通信制御装置20は、WebRTCのシグナリング信号を、端末10と管理装置30との間で中継することができるようになる。また、本処理手順により、端末10にWebRTCモジュールが配布される。これにより、端末10は、WebRTCを用いた通信を行うことが可能になる。
【0061】
なお、管理装置30は、自身の記憶手段401に格納されているWebRTCモジュール又は他のサーバ等からWebRTCモジュールを取得済みであり、自身のWebブラウザ又はSDKランタイム等の上で当該WebRTCモジュールを動作させることが可能な状態である前提とする。なお、このシーケンスは一例にすぎず、他の処理手順によりPeerIDの登録が行われるようにしてもよい。
【0062】
まず、管理装置30のID登録要求手段403は、通信制御装置20に対して登録要求を送信する(S501)。続いて、通信制御装置20のID管理手段303は、管理装置30から登録要求を受信すると、例えば乱数等を用いて管理装置30のPeerIDを生成する。ID管理手段303は、管理装置30からPeerIDの登録要求を再度受けた場合、登録要求ごとに異なるPeerIDを生成するようにしてもよいし、過去に割り当てたPeerIDを再利用するようにしてもよい。また、ID管理手段303は、生成した管理装置30のPeerIDと、受信した登録要求のヘッダ情報に含まれる管理装置30のIPアドレスとを対応づけて、管理装置30のID登録情報として記憶手段301に格納する。また、生成した管理装置30のPeerIDを管理装置30に送信する(S502)。
【0063】
次に、端末10は、端末10のWebRTCモジュールを取得するために管理装置30にHTTPリクエストを送信する(S503)。リクエストには、端末10が属するグループIDとパスワードとを含むようにしてもよい。なお、リクエストが送信される契機については特に問わない。たとえば、管理者が端末10の電源をONにしたタイミングで、端末10はリクエストを送信するようにしてもよい。
【0064】
続いて、管理装置30の認証手段408は、リクエストに含まれるグループIDとパスワードとが認証情報に存在するかを確認することで端末10の認証を行う。認証が許可された場合、端末10のWebRTCモジュールを端末10に送信する(S504)。当該WebRTCモジュールには、管理装置30のPeerID及びWebRTCのシグナリング信号の送信先である通信制御装置20のIPアドレス等が含まれている。
【0065】
続いて、端末10のID登録要求手段203は、通信制御装置20に対してグループIDを含む登録要求を送信する(S505)。通信制御装置20のID管理手段303は、例えば乱数等を用いて生成した値とステップS505で受信したグループIDとに基づいて端末10のPeerIDを生成する。ID管理手段303は、同一の端末10からPeerIDの登録要求を再度受けた場合、登録要求ごとに異なるPeerIDを生成するようにしてもよいし、過去に割り当てたPeerIDを再利用するようにしてもよい。また、ID管理手段303は、生成した端末10のPeerIDと、受信した登録要求のヘッダ情報に含まれる端末10のIPアドレスとを対応づけて、端末10のID登録情報として記憶手段301に格納する。また、生成したPeerIDを端末10に送信する(S506)。
【0066】
次に、端末10のPeerIDを管理装置30が取得する処理手順について説明する。最初に、端末10が管理装置30に直接PeerIDを通知する場合(パターン1)について説明する。この場合、端末10が、ステップS506で受信したPeerIDをそのまま管理装置30に通知する(S507)。
【0067】
次に、管理装置30が通信制御装置20から端末10のPeerIDを取得する場合(パターン2)について説明する。まず、管理装置30のID取得手段406は、通信制御装置20に対して、PeerID一覧取得要求を送信する(S508)。通信制御装置20のID管理手段303は、記憶手段301に記憶されている全ての端末10のPeerIDを管理装置30に送信する(S509)。管理装置30のID取得手段406は、受信した端末10のPeerIDを記憶手段401に格納する。なお、パターン2の場合、管理装置30は、端末10がPeerIDの登録処理を行ったことを知ることができない。従って、管理装置30のID取得手段406は、S508の処理手順を定期的に行うようにしてもよい。
【0068】
(PeerID登録シーケンス(変形例))
図8は、PeerIDを登録する処理手順(変形例)の一例を示すシーケンス図である。
図8に示す処理手順は、
図7の処理手順のように通信制御装置20がPeerIDを生成するのではなく、予め管理装置30及び端末10に設定されているPeerIDを通信制御装置20に登録する場合の処理手順である。PeerIDは通信制御装置20の中でユニークなIDであればよいため、必ずしも通信制御装置20により生成されるようにする必要はない。従って、
図8に示す処理手順のように、予め決められたPeerIDを用いてPeerIDの登録処理を行うことが可能である。なお、予め決められたPeerIDは、ユニーク性を担保するために、例えば、端末10自身又は管理装置30自身のMACアドレスを含むようにしてもよいし、他のユニークな識別子を含むようにしてもよい。
【0069】
まず、管理装置30のID登録要求手段403は、通信制御装置20に対して、管理装置30のPeerIDを含む登録要求を送信する(S601)。続いて、通信制御装置20のID管理手段303は、受信した管理装置30のPeerIDと、受信した登録要求のヘッダ情報に含まれる管理装置30のIPアドレスとを対応づけて、管理装置30のID登録情報として記憶手段301に格納する。また、通信制御装置20のID管理手段303は、登録完了応答を管理装置30に送信する。(S502)。
【0070】
S603とS604の処理手順は、それぞれS503とS504の処理手順と同一であるため説明は省略する。
【0071】
続いて、端末10のID登録要求手段203は、通信制御装置20に対して端末10のPeerIDを含む登録要求を送信する(S605)。通信制御装置20のID管理手段303は、受信した端末10のPeerIDと、受信した登録要求のヘッダ情報に含まれる端末10のIPアドレスとを対応づけて、端末10のID登録情報として記憶手段301に格納する(S606)。
【0072】
(Data Channel確立及び通信シーケンス(端末起動))
図9は、Data Channelを確立させて通信が行われる処理手順(端末起動)の一例を示すシーケンス図である。
図9は、端末10から管理装置30に端末状態情報を送信するために、端末10が管理装置30との間でData Channelを確立させたい場合に用いられる処理手順である。
【0073】
まず、端末10の接続確立手段204は、通信制御装置20に対して、管理装置30のPeerID及びSDP(Session Description Protocol) offerを含む接続要求を送信する(S701)。SDP offerには、端末10が、Data Channelを確立させたいことを管理装置30に伝えるための情報が含まれている。続いて、通信制御装置20の中継手段302は、ステップS701で受信した接続要求に含まれている管理装置30のPeerIDをキーにID登録情報を検索することで、管理装置30のIPアドレスを把握する。通信制御装置20の中継手段302は、把握されたIPアドレス宛てに、ステップS701で受信したSDP offerを含む接続要求を管理装置30に送信する(S702)。
【0074】
続いて、管理装置30の接続確立手段404は、Data Channelを確立可能であることを端末10に伝えるために、通信制御装置20にSDP answerを含む応答を送信する(S703)。続いて、通信制御装置20の中継手段302は、S701で接続要求を受信した端末10宛に、ステップS703で受信したSDP answerを含む接続応答を送信する(S704)。
【0075】
続いて、端末10と通信制御装置20と管理装置30との間でICE(Interactive Connectivity Establishment)処理手順が行われる(S705)。ICE処理手順は、既存技術であるため説明は省略する。以上、S701〜S705の処理手順により、端末10と管理装置30との間でData Channelが確立される。端末10の送信手段205は、確立されたData Channelを介して、端末状態情報を管理装置30に送信する(S706)。
【0076】
なお、端末10は、二回目以降に端末状態情報を管理装置30に送信する際、改めてS701乃至S705の処理手順を行わずに、既に端末10と管理装置30との間で確立されているData Channnelを用いて端末状態情報を管理装置30に送信するようにしてもよい。また、端末10は、二回目以降に端末状態情報を管理装置30に送信する際、必要に応じて、再度S701乃至S705の処理手順を行い、別のData Channelを確立させてから端末状態情報を管理装置30に送信するようにしてもよい。
【0077】
なお、管理装置30は、端末10から端末状態情報を受信した際に、端末状態情報を受信したことを示す応答信号を端末10に送信するようにしてもよい。
【0078】
(Data Channel確立及び通信シーケンス(管理装置起動))
図10は、Data Channelを確立させて通信が行われる処理手順(管理装置起動)の一例を示すシーケンス図である。
図10は、管理装置30から端末10に制御信号を送信するために、管理装置30が端末10との間でData Channelを確立させたい場合に用いられる処理手順である。
【0079】
まず、管理装置30の接続確立手段404は、通信制御装置20に対して、端末10のPeerID及びSDP offerを含む接続要求を送信する(S801)。SDP offerには、管理装置30が、Data Channelを確立させたいことを端末10に伝えるための情報が含まれている。続いて、通信制御装置20の中継手段302は、ステップS801で受信した接続要求に含まれている端末10のPeerIDをキーにID登録情報を検索することで、端末10のIPアドレスを把握する。通信制御装置20の中継手段302は、把握されたIPアドレス宛てに、ステップS801で受信したSDP offerを含む接続要求を端末10に送信する(S802)。
【0080】
続いて、端末10の接続確立手段204は、Data Channelを確立可能であることを管理装置30に伝えるために、通信制御装置20にSDP answerを含む応答を送信する(S803)。続いて、通信制御装置20の中継手段302は、管理装置30宛に、ステップS803で受信したSDP answerを含む接続応答を送信する(S804)。
【0081】
続いて、端末10と通信制御装置20と管理装置30との間でICE(Interactive Connectivity Establishment)処理手順が行われる(S805)。以上、S801〜S805の処理手順により、端末10と管理装置30との間でData Channelが確立される。管理装置30の制御手段405は、確立されたData Channelを介して、制御信号を端末10に送信する(S806)。端末10の制御受付手段206は、Data Channelを介して、制御結果を含む応答信号を管理装置30に送信するようにしてもよい(S807)。
【0082】
なお、管理装置30は、二回目以降に制御信号を端末10に送信する際、改めてS801乃至S805の処理手順を行わずに、既に端末10と管理装置30との間で確立されているData Channnelを用いて制御信号を端末10に送信するようにしてもよい。また、管理装置30は、二回目以降に制御信号を端末10に送信する際、必要に応じて、再度S801乃至S805の処理手順を行い、別のData Channelを確立させてから制御信号を端末10に送信するようにしてもよい。
【0083】
<効果>
以上、第一の実施の形態に係る端末管理システムは、WebRTCを用いることで、端末10及び管理装置30の間でUDPを用いたP2P通信を行うことができるようにした。UDP通信は、HTTP又はTCP等のプロトコルを用いた通信と比較して少ないヘッダ情報で通信を行うことができる。これにより、端末10及び管理装置30は、数Byte程度の少量のデータを送受信する場合であっても、通信リソースの消費を抑えながら効率的かつ低遅延な通信を行うことができる。
【0084】
また、第一の実施の形態に係る端末管理システムは、端末10が管理装置30と直接通信するようにしたことで、管理者は、端末10と管理装置30との間にスマートフォンなどの高機能端末を設置する必要がない。これにより、管理者の利便性を向上させることができる。
【0085】
また、第一の実施の形態に係る端末管理システムは、端末10が管理装置30と直接P2P通信するようにした。これにより、第一の実施の形態に係る端末管理システムは、端末10と管理装置30との間に設置される機器に通信内容を傍受されるリスクを極力少なくすることができる。また、第一の実施の形態に係る端末管理システムは、例えばビデオカメラの撮影動画など、端末10と管理装置30との間でデータサイズが大きいデータを送受信する場合においても、ネットワークの負荷を下げることができる。
【0086】
また、第一の実施の形態に係る端末管理システムは、PeerIDにグループIDを含ませるようにしたことで、端末10をグループに分けて管理することができるようにした。これにより、管理装置30は、例えば各端末10がどの管理者の宅内に設置された端末10であるかを認識することができ、グループごとに管理装置30を設置することなく効率的に端末10を管理することが可能になる。
【0087】
また、第一の実施の形態に係る端末管理システムは、グループIDごとにパスワードを設定することができるようにした。これにより、例えば、ある管理者が、自身が所属するグループとは異なるグループに属する端末10の端末状態情報を参照しようとするといった不正アクセスを防止することができる。また、グループに所属していない不正な端末10が管理装置30に接続されるのを防止することができる。
【0088】
[第二の実施の形態]
次に、第二の実施の形態について図面に基づいて説明する。
【0089】
なお、第一の実施の形態と同一構成部分についての説明は省略する。また、特に言及しない点については、第一の実施の形態と同様でよい。
【0090】
図11は、第二の実施の形態に係る端末管理システムの構成の一例を示す図である。第二の実施の形態に係る端末管理システムは、第一の実施の形態に係る端末管理システムに加えて、端末10に接続される1又は複数の子端末40を有する。子端末40は、WebRTCの処理を実行しない端末であり、例えば、WebRTCのAPIを実行可能なWebブラウザ及びSDKランタイム等を有していない家電又はセンサ、WebRTCの処理を実行可能ではあるものの端末10にWebRTCの処理を実行させることで通信を行う端末などを想定している。また、第二の実施の形態に係る端末10は、子端末40の代わりに管理装置30との間でWebRTCを用いたData Channelを確立することで、子端末40の端末状態情報を管理装置30に送信すること、及び管理装置30が子端末40を制御することを可能とする。
【0091】
<ソフトウェア構成>
図12は、第二の実施の形態に係る端末のソフトウェア構成の一例を示す図である。第二の実施の形態に係る端末10は、記憶手段201と、通信手段202と、ID登録要求手段203と、接続確立手段204と、送信手段205と、制御受付手段214と、子端末通信手段212と、収集手段213とを有する。
【0092】
子端末通信手段212は、例えば、有線LAN、無線LAN、Bluetooth(登録商標)、又は近距離無線通信等といった接続方式により、子端末40との間で通信回線を確立する。
【0093】
収集手段213は、子端末40から、子端末40の端末状態情報を収集し、子端末40の端末状態情報と子端末40の識別子とを対応づけて記憶手段201に格納する。なお、子端末40の識別子は、管理端末及び端末10が子端末40を一意に識別可能な識別子である。子端末40の識別子は、例えば子端末40と端末10との間で通信回線が確立される際に、子端末40から端末10に通知されるようにしてもよいし、他の方法により端末10に通知されるようにしてもよい。
【0094】
制御受付手段214は、子端末40の識別子を含む制御信号を管理装置30から受信し、子端末40の識別子から当該制御信号を送信すべき子端末40を判断して当該制御信号を送信することで、子端末40を制御する。また、当該制御信号に対する子端末40からの応答信号を管理装置30に送信する。
【0095】
<処理手順>
(通信シーケンス(端末起動)
図13は、第二の実施の形態に係る通信が行われる処理手順(端末起動)の一例を示すシーケンス図である。
図13は、端末10が、子端末40の端末状態情報を収集して管理装置30に送信する場合に用いられる処理手順である。
【0096】
まず、子端末40は、子端末40の端末状態情報を端末10に送信する(S901)。端末10の収集手段213は、受信した子端末40の端末状態情報を記憶手段201に格納する。なお、子端末40は、端末10の収集手段213からの指示を受けたタイミングで端末状態情報を送信するようにしてもよいし、定期的に送信するようにしてもよい。また、子端末40の端末状態情報には、子端末40の識別子を含むようにしてもよい。
【0097】
続いて、端末10は管理装置30との間でData Channelを確立する(S902)。S902の処理手順は、例えば
図9のS701〜S705の処理手順と同一であるため説明は省略する。
【0098】
続いて、端末10の送信手段205は、記憶手段201に格納されている子端末40の端末状態情報を管理装置30に送信する(S903)。
【0099】
なお、端末10は、二回目以降に子端末40の端末状態情報を管理装置30に送信する際、改めてS902の処理手順を行わずに、既に端末10と管理装置30との間で確立されているData Channnelを用いて子端末40の端末状態情報を管理装置30に送信するようにしてもよい。また、端末10は、二回目以降に子端末40の端末状態情報を管理装置30に送信する際、必要に応じて、再度S902の処理手順を行い、別のData Channelを確立させてから子端末40の端末状態情報を管理装置30に送信するようにしてもよい。
【0100】
なお、管理装置30は、端末10から子端末40の端末状態情報を受信した際に、端末状態情報を受信したことを示す応答信号を端末10に送信するようにしてもよい。また、端末10は、管理装置30から受信した応答信号を子端末40に転送するようにしてもよい。
【0101】
(通信シーケンス(管理装置起動))
図14は、第二の実施の形態に係る通信が行われる処理手順(管理装置起動)の一例を示すシーケンス図である。
図14は、管理装置30が、子端末40を制御する場合に用いられる処理手順である。
【0102】
まず、管理装置30は端末10との間でData Channelを確立する(S1001)。S1001の処理手順は、例えば
図10のS801〜S805の処理手順と同一であるため説明は省略する。
【0103】
次に、管理装置30の制御手段405は、子端末40の識別子を含む制御信号を端末10に送信する(S1002)。なお、管理装置30は、子端末40の識別子を把握するため、ステップS1001の処理手順において、端末10に接続されている子端末40の識別子を受け取るようにしてもよいし、他の手段を用いて予め子端末40の識別子を受け取るようにしてもよい。続いて、端末10の制御受付手段214は、子端末40の識別子から制御信号を送信すべき子端末40を判断して当該制御信号を送信する(S1003)。管理装置30の制御手段405は、子端末40から応答信号を受信し(S1004)、受信した応答信号を管理装置30に送信する(S1005)。
【0104】
なお、管理装置30は、二回目以降に子端末40の識別子を含む制御信号を端末10に送信する際、改めてS1001の処理手順を行わずに、既に端末10と管理装置30との間で確立されているData Channnelを用いて制御信号を端末10に送信するようにしてもよい。また、管理装置30は、二回目以降に子端末40の識別子を含む制御信号を端末10に送信する際、必要に応じて、再度S1001の処理手順を行い、別のData Channelを確立させてから制御信号を端末10に送信するようにしてもよい。
【0105】
<効果>
以上、第二の実施の形態に係る端末管理システムは、子端末40の代わりに端末10が管理装置30との間でData Channelを確立するようにして、管理装置30が子端末40の端末状態情報を管理すること、及び管理装置30が子端末40を制御することを可能にした。これにより、第二の実施の形態に係る端末管理システムは、WebRTCモジュールを実行することができない端末を含む多様な端末を管理することができる。
【0106】
<実施形態の補足>
以上、上記複数の実施の形態において、認証情報にはグループIDごとにパスワードを対応づけて記憶させるようにしたが、他の単位でパスワードを記憶させるようにしてもよい。例えば、端末10毎のPeerID(又はPeerIDとは異なる端末10固有のID)とパスワードとを対応づけて記憶するようにしてもよい。
【0107】
また、上記複数の実施の形態において、パスワードを用いた認証の代わりに、例えば、EAP−SIM(Extended Authentication Protocol-Subscriber Identity Modules)、EAP−AKA(Extended Authentication Protocol-Authentication and Key Agreement)のようなSIMカードを用いた認証方法、又は、EAP−TLS(Extended Authentication Protocol-Transport Layer Security)などの電子証明書を用いた認証方法などの他の認証方法を用いるようにしてもよい。
【0108】
以上、上記複数の実施の形態において、通信制御装置20は、端末10から通知されるグループIDに基づいてグループを認識するのではなく、宅内に引き込まれているWAN回線ごとに振られている回線管理番号に基づいてグループを区別するようにしてもよい。これにより、個々の端末10にグループIDを予め設定する必要がなく、管理者の利便性を高めることができる。
【0109】
以上、上記複数の実施の形態において、管理装置30がWebRTCモジュールを提供するようにしたが、端末10がWebRTCモジュールを提供するようにしてもよい。この場合、管理装置30は、端末10からWebRTCモジュールを取得するようにしてもよい。また、管理装置30とは異なる他のサーバがWebRTCモジュールを提供するようにしてもよい。この場合、端末10及び管理装置30は、当該他のサーバからWebRTCモジュールを取得するようにしてもよい。
【0110】
以上、本発明は上記複数の実施の形態に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能である。
【0111】
以上、上記複数の実施の形態で述べたシーケンス及びフローチャートは、矛盾の無い限り順序を入れ替えてもよい。
【0112】
以上、上記複数の実施の形態の全部又は一部は、プログラムによって実装され得る。このプログラムは、記憶媒体に格納することができる。
【0113】
なお、上記複数の実施の形態において、端末10のPeerIDは、端末識別子の一例である。また、管理装置30のPeerIDは、管理装置識別子の一例である。また、端末10のID登録情報は、端末登録情報の一例である。また、管理装置30のID登録情報は、管理装置登録情報の一例である。また、IPアドレスは、アドレス情報の一例である。また、シグナリング信号は、通信確立信号の一例である。また、Data Channelは、通信チャネルの一例である。また、ID登録要求手段203は、第一の登録要求手段の一例である。また、ID登録要求手段403は、第二の登録要求手段の一例である。また、接続確立手段204は、第一の確立手段の一例である。また、接続確立手段404は、第二の確立手段の一例である。また、ID管理手段303は、管理手段の一例である。ID取得手段406は、取得手段の一例である。また、グループIDは、属性情報の一例である。また、子端末40は、異なる端末の一例である。
(第1項)
端末と、前記端末を管理する管理装置と、前記端末と前記管理装置との間で行われる通信を制御する通信制御装置とを有する端末管理システムであって、
前記通信制御装置は、
前記端末を識別する端末識別子と前記端末のアドレス情報とを含む端末登録情報と、前記管理装置を識別する管理装置識別子と前記管理装置のアドレス情報とを含む管理装置登録情報と、を記憶する記憶手段と、
前記端末登録情報又は前記管理装置登録情報に基づいて、前記端末と前記管理装置との間で送受信される通信確立信号を中継する中継手段と、
を有し、
前記端末は、
前記管理装置識別子を含む通信確立信号を前記中継手段に送信することで、前記通信を行うための通信チャネルを確立する第一の確立手段と、
前記端末の状態を示す状態情報を、前記通信チャネルを介して前記管理装置に送信する通知手段と、
を有する端末管理システム。
(第2項)
前記管理装置は、
前記端末識別子を含む通信確立信号を前記中継手段に送信することで、前記通信チャネルを確立する第二の確立手段と、
前記端末を制御する制御信号を、前記通信チャネルを介して前記端末に送信する制御手段と、
を更に有する第1項に記載の端末管理システム。
(第3項)
前記通信制御装置は、
前記端末又は前記管理装置からの要求を受けて前記端末識別子又は前記管理装置識別子を生成して前記記憶手段に登録すると共に、生成した前記端末識別子又は前記管理装置識別子を、前記端末又は前記管理装置に送信する管理手段、
を更に有し、
前記端末は、
前記管理手段に前記端末識別子の送信を要求すると共に、前記管理手段から受信した前記端末識別子を記憶する第一の登録要求手段、
を更に有し、
前記管理装置は、
前記管理手段に前記管理装置識別子の送信を要求すると共に、前記管理手段から受信した前記管理装置識別子を記憶する第二の登録要求手段、
を更に有する、第2項に記載の端末管理システム。
(第4項)
前記第一の確立手段は、前記第一の登録要求手段に記憶される前記管理装置識別子を用いて前記通信チャネルを確立し、
前記第二の確立手段は、前記第二の登録要求手段に記憶される前記端末識別子を用いて前記通信チャネルを確立する、第3項に記載の端末管理システム。
(第5項)
前記第一の登録要求手段は、前記端末の属性を示す属性情報を含めて、前記管理手段に前記端末識別子の送信を要求し、
前記管理手段は、前記第一の登録要求手段から通知される前記属性情報を含む前記端末識別子を生成する、第3項又は第4項に記載の端末管理システム。
(第6項)
前記通信チャネルは、UDPを用いた通信チャネルである、第1項乃至第5項のいずれか一項に記載の端末管理システム。
(第7項)
前記通信チャネルは、WebRTCの通信手段により確立される第1項乃至第6項のいずれか一項に記載の端末管理システム。
(第8項)
前記端末は、
前記端末に接続される端末であって、前記端末とは異なる端末の状態を示す情報を収集する収集手段、
を更に有し、
前記通知手段は、前記異なる端末の状態を示す情報を、前記通信チャネルを介して前記管理装置に送信する、第1項乃至第7項のいずれか一項に記載の端末管理システム。
(第9項)
端末と前記端末を管理する管理装置との間で行われる通信を制御する通信制御装置であって、
前記端末を識別する端末識別子と前記端末のアドレス情報とを含む端末登録情報と、前記管理装置を識別する管理装置識別子と前記管理装置のアドレス情報とを含む管理装置登録情報と、を記憶する記憶手段と、
前記端末の属性を示す属性情報を含む前記端末からの要求を受けた場合、前記属性情報を含む前記端末識別子を生成して前記記憶手段に格納すると共に、生成した前記端末識別子を前記端末に送信し、前記管理装置からの要求を受けた場合、前記管理装置識別子を生成して前記記憶手段に格納すると共に、生成した前記端末識別子を前記管理装置に送信する管理手段と、
前記端末登録情報又は前記管理装置登録情報に基づいて、前記端末と前記管理装置との間で送受信される通信確立信号を中継する中継手段と、
を有する通信制御装置。
(第10項)
端末を管理する管理装置であって、
前記端末と当該管理装置との間で行われる通信を制御する通信制御装置又は前記端末から、前記端末を識別する端末識別子を取得する取得手段と、
前記通信制御装置に前記端末識別子を含む通信確立信号を送信することで、前記通信を行うための通信チャネルを確立する確立手段と、
前記端末を制御する制御信号を、前記通信チャネルを介して前記端末に送信する制御手段と、
を有する管理装置。
(第11項)
端末と、前記端末を管理する管理装置と、前記端末と前記管理装置との間で行われる通信を制御する通信制御装置とを有する端末管理システムにおける端末管理方法であって、
前記通信制御装置が、
前記端末を識別する端末識別子と前記端末のアドレス情報とを含む端末登録情報と、前記管理装置を識別する管理装置識別子と前記管理装置のアドレス情報とを含む管理装置登録情報と、を記憶手段に記憶させるステップと、
前記通信制御装置が、
前記端末登録情報又は前記管理装置登録情報に基づいて、前記端末と前記管理装置との間で送受信される通信確立信号を中継するステップと、
前記端末が、
前記管理装置識別子を含む通信確立信号を前記通信制御装置に送信することで、前記通信を行うための通信チャネルを確立するステップと、前記端末の状態を示す状態情報を、前記通信チャネルを介して前記管理装置に送信するステップと、
を有する端末管理方法。
(第12項)
端末と前記端末を管理する管理装置との間で行われる通信を制御する通信制御装置における通信制御プログラムであって、
通信制御装置に、
前記端末を識別する端末識別子と前記端末のアドレス情報とを含む端末登録情報と、前記管理装置を識別する管理装置識別子と前記管理装置のアドレス情報とを含む管理装置登録情報と、を記憶手段に記憶させるステップと、
前記端末の属性を示す属性情報を含む前記端末からの要求を受けた場合、前記属性情報を含む前記端末識別子を生成して前記記憶手段に格納すると共に、生成した前記端末識別子を前記端末に送信し、前記管理装置からの要求を受けた場合、前記管理装置識別子を生成して前記記憶手段に格納すると共に、生成した前記端末識別子を前記管理装置に送信するステップと、
前記端末と前記管理装置との間で前記通信が確立される際に、前記端末と前記管理装置との間で送受信される通信確立信号を中継するステップと、
を実行させるための通信制御プログラム。