以下、本発明の実施の形態を図面に基づき説明する。
図1は本発明の一の実施形態にかかるネットワークシステムの全体的な構成を示す図である。
このネットワークシステムは、端末装置である携帯電話などの制御機器10、ネットワーク家電機器である例えばDVR(Digital Video Recorder)などの被制御機器20、サービスサーバ30、ダイレクトアクセス管理サーバ40、およびルータ50を有している。
制御機器10は、被制御機器を制御する機器として動作するものである。制御機器は、被制御機器を制御できるものであれば何でもよく、たとえば、PC(Personal Computer)、PDA(Personal Digital Assistance)などであってよい。
制御機器10は、プログラムなどを記憶するメインメモリ、メインメモリに記憶されたプログラムを実行して各種の演算処理を行うCPU(Central Processing Unit)、ネットワークとのインタフェース部、DVR20とのインタフェース部、キー入力部や表示部などのユーザインタフェース部、不揮発性の記憶部11などを備える。この記憶部11には、この制御機器10に登録されているユーザ識別情報が記憶されている。メインメモリには、被制御機器20の登録、メッセージ送信設定などに関する処理を行うプログラムなどが記憶されている。
被制御機器20は、放送番組などのコンテンツをメディアに録画したり再生したりする録画再生機能部のほか、プログラムなどを記憶するメインメモリ、メインメモリに記憶されたプログラムを実行して各種の演算処理を行うCPU、ネットワークとのインタフェース部、制御機器10とのインタフェース部、不揮発性の記憶部21、リモコン受信部、TVなどを接続するためのインタフェース部などを備える。この記憶部21には、被制御機器に固定的に割り当てられた機器認証情報が予め記憶されている。メインメモリには、被制御機器20の録画再生機能部を制御するためのプログラムのほか、ダイレクトアクセス管理サーバ40への被制御機器の登録、メッセージ送信設定、メッセージ送信などに関する処理を行うためのプログラムなどが記憶されている。なお、この実施の形態では被制御機器20を被制御機器としたが、ネットワーク接続機能を有する機器であれば何でもよい。たとえば、テレビでもよい。
サービスサーバ30は、制御機器10に対してネットワーク越しに被制御機器20にアクセスする各種のサービスを提供したり、被制御機器20からのメッセージを受信して制御機器10に通知するサーバである。このサービスサーバ30は、たとえば、キーボード・マウスなどの入力部と、表示部と、プログラムなどを記憶するメインメモリと、メインメモリに記憶されたプログラムを実行して各種の演算処理を行うCPUと、ネットワークとの通信部と、記憶部31とを備えた、たとえば定型的なコンピュータシステムを用いて実現される。メインメモリには、コンピュータシステムを動作させるために必要な基本的なプログラムのほか、サービスを実行するために必要なプログラムなどが記憶されている。記憶部31には、サービスサーバ30が提供する個々のサービスごとにサービスサーバ及びサービスを識別するためのサービスIDが記憶されている。
ダイレクトアクセス管理サーバ40は、制御機器10と、サービスサーバ30のサービスとの組み合わせと被制御機器20との対応を管理するサーバである。このダイレクトアクセス管理サーバ40は、たとえば、キーボード・マウスなどの入力部と、表示部と、プログラムなどを記憶するメインメモリと、メインメモリに記憶されたプログラムを実行して各種の演算処理を行うCPUと、ネットワークとのインタフェース部と、記憶部41とを備えた、たとえば定型的なコンピュータシステムを用いて実現される。メインメモリには、コンピュータシステムを動作させるために必要な基本的なプログラムのほか、コンピュータシステムをダイレクトアクセス管理サーバとして機能させるためのプログラムなどが記憶されている。
ダイレクトアクセス管理サーバ40には、SOAP(Simple Object Access Protocol)サーバ42およびXMPP(eXtensible Messaging and Presence Protocol)サーバ43が設けられている。SOAPサーバ42は、制御機器10とサービスの組み合わせの登録、被制御機器20の登録、サービスサーバ30に対するダイレクトアクセスを行うための情報の授受などに関する処理や、被制御機器20から受信したメッセージをサービスサーバ30に転送する処理を行うためのサーバである。XMPPサーバ43は、被制御機器20との間で双方向の常時接続セッションを設定するためのサーバである。なお、SOAPサーバ及びXMPPサーバは、一実施例を示したものであり、SOAPサーバは他のAPI呼び出し方式を用いたサーバに、XMPPサーバは他のIMの方式を用いたサーバに、それぞれ置き換え可能である。
次に、各機器のインタフェースについて説明する。図1において[IF−**]はインタフェース番号を示している。
ダイレクトアクセス管理サーバ40内のSOAPサーバ42は、サービスサーバ30からアクセスされるインタフェース[IF−02]と、被制御機器20からアクセスされるインタフェース[IF−00]とを有する。SOAPサーバ42にはSOAPクライアント機能も含まれており、サービスサーバ30側のインタフェース[IF−05]へのアクセスを行う。XMPPサーバ43のインタフェースは、XMPPセッションの確立を行う際にXMPPクライアントからアクセスされる。本システム構成例では、被制御機器20からアクセスされるインタフェース[IF−06]がこれに該当し、XMPPセッション確立後はこのインタフェース[IF−06]を用いて双方向にメッセージをやり取りできるため、XMPPサーバ43からも被制御機器20のインタフェース[IF−07]にアクセスすることができる。
サービスサーバ30は、制御機器10からアクセスされるインタフェース[IF−01]と、ダイレクトアクセス管理サーバ40からアクセスされるインタフェース[IF−05]と、被制御機器20からアクセスされるインタフェース[IF−31]とを有する。
なお、このシステム構成例では、サービスサーバ30はダイレクトアクセス管理サーバ40内のXMPPサーバ43と直接インタフェースしていないが、もちろん直接インタフェースするように構成してもよい。
制御機器10は、サービスサーバ30からアクセスされるインタフェース[IF−21]を有する。
被制御機器20は、ダイレクトアクセス管理サーバ40からアクセスされるXMPPセッション確立後のインタフェース[IF−07]と、制御機器10との間で例えば赤外線やUSB(Universal Serial Bus)などでデータを送受信するためのインタフェース[IF−03]と、サービスサーバ30もしくは制御機器10からアクセスされるダイレクトアクセス用URIに対応したインタフェース[IF−09]とを有している。
ルータ50は、被制御機器20からアクセスされる、UPnP(Universal Plug and Play)IGD(Internet Gateway Device)機能のインタフェース[IF−08]を有する。
次に、この実施形態のネットワークシステムの動作を説明する。以下の説明において<X−XX>は要求、<X−XXR>は<X−XX>に対する応答を示す。
[1.制御機器・サービス、被制御機器の登録]
最初に、制御機器10とサービスとの組み合わせ毎に発行される制御機器・サービス管理IDと、ダイレクトアクセス管理サーバ40内で個々の被制御機器20に対してユニークに発行される被制御機器管理IDとの紐付けを行う動作を説明する。
図2は制御機器10とサービスとの組み合わせの登録と被制御機器20の登録を行う際の情報の流れを示すシーケンス図である。図12はこの登録時の制御機器10のフローチャートである。図14はこの登録時のサービスサーバ30のフローチャートである。図18は登録時のダイレクトアクセス管理サーバ40のフローチャートである。図22はこの登録時の被制御機器20のフローチャートである。
[1−1.制御機器とサービスとの組み合わせの登録]
まず、制御機器10は、ユーザからの被制御機器登録の指示を受け(図12:ステップS301)、ユーザ識別情報を含む被制御機器登録要求<R−1>をサービスサーバ30に発行する(図12:ステップS302)。
サービスサーバ30は、ユーザ識別情報を含む被制御機器登録要求<R−1>を受信すると(図14:ステップS401)、そのユーザ識別情報に対応する制御機器・サービス管理IDが記憶部31に記憶されているかどうかを判断する(図14:ステップS402)。
ユーザ識別情報に対応する制御機器・サービス管理IDが記憶されていない場合、サービスサーバ30は、ユーザ識別情報を記憶部31に保存し(図14:ステップS403)、あらかじめ自身に割り当てられているサービスIDを含む制御機器・サービス管理ID取得要求<R−2>をダイレクトアクセス管理サーバ40内のSOAPサーバ42に対して発行する(図14:ステップS404)。制御機器・サービス管理IDは、サービス事業者が提供する個々のサービスと制御機器との組み合わせに対してユニークに割り当てられるIDである。
SOAPサーバ42は、制御機器・サービス管理ID取得要求<R−2>を受信すると(図18:ステップS501)、これに含まれているサービスIDが、ダイレクトアクセス管理サーバ40の記憶部41にあらかじめ登録されているサービスIDと一致するかどうかを調べ(図18:ステップS502)、一致しない場合には、サービスサーバ30にサービスIDが未登録であることを示すエラーコードを制御機器・サービス管理ID取得応答<R−2R>として送信する(図18:ステップS506)。サービスIDが一致する場合には、SOAPサーバ42は、新規の制御機器・サービス管理IDを発行して(図18:ステップS503)、この制御機器・サービス管理IDとサービスIDとの対応関係を記憶部41に登録し(図18:ステップS504)、その制御機器・サービス管理IDをサービスサーバ30に制御機器・サービス管理ID取得応答<R−2R>として送信する(図18:ステップS505)。これにより、ダイレクトアクセス管理サーバ40は、ダイレクトアクセス管理サーバ40からみて制御側を、制御機器10と、制御機器10が利用するサービスサーバ30のサービスとを組み合わせで識別することができるようになる。
なお、ダイレクトアクセス管理サーバ40は、記憶部41に、制御機器・サービス管理IDおよびサービスIDに対応付けて、サービスサーバ30のURIなどの場所情報を保存して管理することとしている。
サービスサーバ30は、制御機器・サービス管理ID取得応答<R−2R>として制御機器・サービス管理IDを受信すると(図14:ステップS405)、この制御機器・サービス管理IDをユーザ識別情報と対応付けて記憶部31に登録する(図14:ステップS406)。制御機器・サービス管理IDをユーザ識別情報と対応付けて記憶することにより、サービスサーバ30は、以降、制御機器10からアクセスされた際に、制御機器10のユーザ識別情報に対応する制御機器・サービス管理IDを用いて、ダイレクトアクセス管理サーバ40に処理を要求することにより、制御機器10とサービスサーバ30のサービスとの組み合わせの制御側として、ダイレクトアクセス管理サーバ40に制御要求元を一意に識別させることが可能となる。
サービスサーバ30は、制御機器・サービス管理IDをユーザ識別情報と対応付けて記憶部31に登録した後、または、制御機器10から受信した被制御機器登録要求<R−1>に含まれるユーザ識別情報に対応する制御機器・サービス管理IDが記憶部31に登録されている場合、それら制御機器・サービス管理IDおよびサービスIDを含む被制御機器登録用パスワード取得要求<R−3>をダイレクトアクセス管理サーバ40内のSOAPサーバ42に対して発行する(図14:ステップS407)。
ダイレクトアクセス管理サーバ40内のSOAPサーバ42は、被制御機器登録用パスワード取得要求<R−3>を受信すると(図18:ステップS507)、これに含まれている制御機器・サービス管理IDおよびサービスIDの組み合わせが記憶部41に登録されているかどうかを判断する(図18:ステップS508)。登録されていない場合、SOAPサーバ42は、サービスサーバ30に制御機器・サービス管理IDとサービスIDの組み合わせが未登録であることを示すエラーコードを被制御機器登録用パスワード取得応答<R−3R>として送信する(図18:ステップS512)。また、被制御機器登録用パスワード取得要求<R−3>に含まれている制御機器・サービス管理IDおよびサービスIDの組み合わせが記憶部41に既に登録されている場合、SOAPサーバ42は、被制御機器登録用パスワードを新たに生成し(図18:ステップS509)、この被制御機器登録用パスワードとこの被制御機器登録用パスワードに対して決められた有効期限に関する情報を被制御機器登録用パスワード取得要求<R−3>に含まれていた制御機器・サービス管理IDおよびサービスIDと対応付けて記憶部41に登録する(図18:ステップS510)。この後、SOAPサーバ42は、被制御機器登録用パスワードと、この被制御機器登録用パスワードの有効期限の情報を被制御機器登録用パスワード取得応答<R−3R>としてサービスサーバ30に送信する(図18:ステップS511)。
サービスサーバ30は、被制御機器登録用パスワード取得応答<R−3R>を受信すると(図14:ステップS408)、この被制御機器登録用パスワード取得応答<R−3R>に含まれている被制御機器登録用パスワードとその有効期限の情報を被制御機器登録応答<R−4>として制御機器10に送信する(図14:ステップS409)。
制御機器10は、この被制御機器登録応答<R−4>を受信すると(図12:ステップS303)、これに含まれている被制御機器登録用パスワードとその有効期限の情報を記憶部11に保存する(図12:ステップS304)。
以上により、制御機器10とサービスとの組み合わせに対する制御機器・サービス管理IDの登録処理と被制御機器20を制御機器に関連付けるために用いられる被制御機器登録用パスワードの発行処理が完了となる。
[1−2.被制御機器の登録]
次に、被制御機器20の登録時の動作を説明する。
被制御機器20は、ユーザによる利用前にダイレクトアクセス管理サーバ40において自身の機器認証を次のように行う。
まず、被制御機器20は自動接続フラグの値をチェックする(図22:ステップS601)。被制御機器のダイレクトアクセス管理サーバ40への登録前には自動接続フラグの値はオフである。この場合被制御機器20は自身に予め設定されている認証方式の情報および機器認証情報を含む機器認証要求<R−0>をダイレクトアクセス管理サーバ40内のSOAPサーバ42に送信する(図22:ステップS602)。
ダイレクトアクセス管理サーバ40内のSOAPサーバ42は、被制御機器20からの機器認証要求<R−0>を受信すると(図18:ステップS513)、この被制御機器20が正当な機器であるかどうかを、機器認証要求<R−0>に含まれる認証方式の情報および機器認証情報に基づき判定する(図18:ステップS514)。不当な機器として判定された場合、すなわち、認証方式があらかじめ決められている認証方式と異なる場合や機器認証情報があらかじめ決められている認証方式の形式と異なる場合等には、SOAPサーバ42は、ダイレクトアクセス管理サーバ40へのエラーコードを示す旨を機器認証応答<R−0R>として被制御機器20に送信する(図18:ステップS515)。正当な機器であることが判定された場合、すなわち、認証方式があらかじめ決められている認証方式と一致し、かつ機器認証情報があらかじめ決められている認証方式の形式である場合には、SOAPサーバ42は、その被制御機器20に対して割り当てる機器認証継続IDを生成して(図18:ステップS516)、この機器認証継続IDと、機器認証要求<R−0>に含まれる機器認証情報とを対応付けて記憶部41に保存する(図18:ステップS517)。この後、SOAPサーバ42は、上記の生成した機器認証継続IDとその有効期限の情報を含む機器認証応答<R−0R>を被制御機器20へ送信する(図18:ステップS518)。機器認証継続IDは、ダイレクトアクセス管理サーバ40で機器認証が完了している機器に対して割り当てられる識別情報であり、この識別情報によって、ダイレクトアクセス管理サーバ40は、被制御機器20の機器の認証状況を確認することが可能となる。
被制御機器20は、ダイレクトアクセス管理サーバ40内のSOAPサーバ42から、機器認証継続IDとその有効期限の情報とを含む機器認証応答<R−0R>を受信すると(図22:ステップS603)、この機器認証応答<R−0R>に含まれる機器認証継続ID、その有効期限の情報を機器認証情報と対応付けて記憶部21に保存する(図22:ステップS604)。
この後、被制御機器20は、記憶部21に被制御機器登録用パスワードが保存されているかどうかを判断する(図22:ステップS605)。被制御機器登録用パスワードが保存されていない場合には動作を終了し、被制御機器登録用パスワードが保存されている場合にはステップS609へ移行する。機器認証継続IDを取得した直後は被制御機器登録用パスワードが保存されていないので、この場合には動作を終了することとなる。
ここまでにおいて、被制御機器20には機器認証継続ID、機器認証継続IDの有効期限の情報、機器認証情報の組み合わせが記憶部21に記憶され、ダイレクトアクセス管理サーバ40には機器認証継続IDと機器認証情報との組み合わせが記憶部41に記憶され、被制御機器20のダイレクトアクセス管理サーバ40への登録が完了したことになる。
[1−3.制御機器・サービス管理IDと被制御機器管理IDとの紐付け]
次に、制御機器・サービス管理IDと被制御機器管理IDとを関連付けてダイレクトアクセス管理サーバ40に登録する動作を行う。制御機器10において、ユーザからのワンタイムパスワード送信要求が入力される(図12:ステップS305)。制御機器10は、このユーザからのワンタイムパスワード送信要求を受けると記憶部11に記憶されている被制御機器登録用パスワードを、例えば、赤外線やUSBなどのインタフェース[IF−03]を使って、被制御機器20にワンタイムパスワード<R−5>として渡す(図12:ステップS306)。被制御機器登録用パスワードの渡し方は、他にも、非接触ICカードを介した受け渡し、Bluetooth(商標)、無線LANなどによる無線伝送など様々な方式が想定されるが、制御機器である制御機器10から被制御機器20に対して被制御機器登録用パスワードを渡すことができさえすればどのような渡し方であっても構わない。この後、制御機器10は記憶部11から被制御機器登録用パスワードを消去する(図12:ステップS307)。
被制御機器20は、制御機器10から被制御機器登録用パスワード<R−5>を受信すると(図22:ステップS607)、この被制御機器登録用パスワードを記憶部21に保存する(図22:ステップS608)。続いて、被制御機器20は、記憶部21に記憶されている機器認証継続IDと、制御機器10より受信した被制御機器登録用パスワードを含む被制御機器登録要求<R−6>をダイレクトアクセス管理サーバ40内のSOAPサーバ42に送信する(図22:ステップS609)。これにより被制御機器20は、ダイレクトアクセス管理サーバ40に、被制御機器登録用パスワードを送信してきた制御機器10と関連付けて登録することを要求する。
ダイレクトアクセス管理サーバ40内のSOAPサーバ42は、被制御機器20から被制御機器登録要求<R−6>を受信すると(図18:ステップS519)、この被制御機器登録要求<R−6>に含まれる機器認証継続IDが記憶部41に保存されているものと一致するかどうかのチェックと機器認証継続IDの有効期限のチェックを行う(図18:ステップS520)。これらのチェックでNGが判定された場合、すなわち機器認証継続IDが一致しないか、もしくは機器認証継続IDの有効期限が切れている場合には、機器認証が必要であることを示すエラーコードを含む被制御機器登録応答<R−6R>を被制御機器20へ送信する(図18:ステップS530)。被制御機器20は、このエラーコードを含む被制御機器登録応答<R−6R>を受信すると(図22:ステップS622)、ステップS602に戻って機器認証のための処理を繰り返す。
また、SOAPサーバ42は、ステップS520のチェック結果がOKの場合、すなわち機器認証継続IDが記憶部41に記憶されているものと一致し、かつ機器認証継続IDの有効期限が切れていない場合、被制御機器20から受信した被制御機器登録要求<R−6>に含まれる被制御機器登録用パスワードが記憶部41に保存されているものと一致するかどうかのチェックとその被制御機器登録用パスワードの有効期限のチェックを行う(図18:ステップS521)。これらのチェックでNGが判定された場合、すなわち被制御機器登録用パスワードが一致しないか、もしくは被制御機器登録用パスワードの有効期限が切れている場合、SOAPサーバ42は、被制御機器登録要求<R−6>に含まれる被制御機器登録用パスワードが無効であることを示すエラーコードを被制御機器登録応答<R−6R>として被制御機器20へ送信する(図18:ステップS529)。被制御機器20は、このエラーコードを被制御機器登録応答<R−6R>として受信すると(図22:ステップS620)、被制御機器20に接続されたTVの画面等を通して、被制御機器登録用パスワードの再取得を行うように、ユーザに対してエラーメッセージの表示を行って(図22:ステップS621)、処理を終了する。
また、SOAPサーバ42は、ステップS521のチェック結果がOKの場合、すなわち被制御機器登録用パスワードが記憶部41に記憶されているものと一致し、かつ被制御機器登録用パスワードの有効期限が切れていない場合には、記憶部41に記憶されている情報を参照して、被制御機器登録要求<R−6>に含まれている機器認証継続IDに被制御機器管理IDが割り当てられているかどうかの判断を行う(図18:ステップS522)。機器認証継続IDに対応する被制御機器管理IDがまだ割り当てられていない場合、SOAPサーバ42は、その被制御機器20に対して被制御機器管理IDを割り当て(図18:ステップS523)、この割り当てた被制御機器管理IDを、その被制御機器20の機器認証情報および機器認証継続IDと対応付けて記憶部41に保存する(図18:ステップS524)。被制御機器登録要求<R−6>に含まれている機器認証継続IDに被制御機器管理IDがすでに割り当てられている場合には、SOAPサーバ42は被制御機器管理IDを、記憶部41に該被制御機器登録用パスワードと対応付けられて保存されている制御機器・サービス管理IDと関連付けて記憶部41に保存する(図18:ステップS525)。ここで、被制御機器管理IDとは、被制御機器に対してダイレクトアクセス管理サーバ40内でユニークに割り当てられる識別情報である。これによって、制御機器とサービスとの組み合わせに対して割り当てられた制御機器・サービス管理IDと、被制御機器に対して割り当てられた被制御機器管理IDとの紐付けが行われる。この紐付けは、1つの制御機器・サービス管理IDに対して複数の被制御機器管理IDが紐付けされても、逆に複数の制御機器・サービス管理IDに対して1つの被制御機器管理IDが紐付けされても構わない。
次にSOAPサーバ42は、現在紐付けが完了しているサービスの数を被制御機器登録応答<R−6R>として被制御機器20へ送信する(図18:ステップS526)。次に、SOAPサーバ42は、記憶部41に保存されているサービスID、制御機器・サービス管理ID、被制御機器登録用パスワードを含む被制御機器登録完了通知<R−7>をサービスサーバ30に送信する(図18:ステップS527)。この後、SOAPサーバ42は、記憶部41の被制御機器登録用パスワードを消去し(図18:ステップS528)、処理を終了する。一方、サービスサーバ30はSOAPサーバ42より被制御機器登録完了通知<R−7>を受信すると(図14:ステップS410)、被制御機器の登録が完了したことを、制御機器10のユーザに電子メールなどによって通知する(図14:ステップS411)。
被制御機器20は、SOAPサーバ42より現在紐付けが完了しているサービスの数を被制御機器登録応答<R−6R>として受信すると(図22:ステップS610)、自動接続フラグをオンにセットし(図22:ステップS611)、被制御機器の登録が完了したことを表すメッセージを表示する(図22:ステップS612)。続いて、被制御機器20は、記憶部21に保存されている被制御機器登録用パスワードを消去する(図22:ステップS613)。その後、被制御機器20は、ダイレクトアクセス管理サーバ40内のXMPPサーバ43との間で常時接続セッションを確立するために、機器認証継続IDを含むXMPPログイン情報取得要求<D−0−1>をダイレクトアクセス管理サーバ40内のSOAPサーバ42に送信する(図22:ステップS614)。
[2.被制御機器のXMPPログイン]
このネットワークシステムでは、ダイレクトアクセス管理サーバ40に、被制御機器20との間で双方向の常時接続セッションを設定するためのXMPPサーバ43を置いている。制御機器である制御機器10から被制御機器20にネットワークを通じてアクセスするために、その前に被制御機器20がXMPPサーバ43にログインしてXMPPサーバ43の間で常時接続セッションを確立しておく。これにより、サービスサーバ30や制御機器10は、必要なときには、被制御機器20から必要な情報を取得できる。また、この際のサービスサーバ30の設計を簡単にするために、XMPPプロトコルをダイレクトアクセス管理サーバ40内に隠蔽し、SOAPインタフェースだけで、被制御機器20と双方向の常時接続セッションを設定しているXMPPサーバ43との情報のやり取りを行えるようにしている。
図3は被制御機器20のXMPPログインに関する情報の流れを示すシーケンス図である。図19は被制御機器20のXMPPログイン時のダイレクトアクセス管理サーバ40の動作を示すフローチャートである。
ダイレクトアクセス管理サーバ40は、被制御機器20より機器認証継続IDを含むXMPPログイン情報取得要求<D−0−1>を受信すると(図19:ステップS1001)、このXMPPログイン情報取得要求<D−0−1>に含まれている機器認証継続IDと機器認証継続IDの有効期限のチェックを行う(図19:ステップS1002)。このチェックでXMPPログイン情報取得要求<D−0−1>に含まれている機器認証継続IDが、ダイレクトアクセス管理サーバ40の記憶部41に記憶されているものと一致しない場合、もしくは、有効期限が切れている場合には、被制御機器20が正常にダイレクトアクセス管理サーバ40に登録されていないか、もしくは、過去に登録されていたが登録時の機器認証継続IDの有効期限が切れているのかであるため、機器認証が必要であることを示すエラーコードをXMPPログイン情報取得応答<D−0−1R>として被制御機器20に送信する(図19:ステップS1003)。機器認証継続IDが記憶部41に記憶されており、かつ機器認証継続IDの有効期限が切れていない場合、ダイレクトアクセス管理サーバ40は、記憶部41から、当該機器認証継続IDに紐付けられている被制御機器管理ID及び機器認証情報を検索し(図19:ステップS1004)、これら被制御機器管理IDと機器認証情報から、被制御機器20がXMPPサーバ43にログインするために必要なXMPPログインIDであるFull JID(D)、XMPPログインパスワードおよびXMPPログインパスワードの有効期限の情報を生成し(図19:ステップS1005)、これらを記憶部41に保存する(図19:ステップS1006)。そして、ダイレクトアクセス管理サーバ40は、生成したFull JID(D)、XMPPログインパスワードおよびその有効期限の情報に、XMPPアドレスおよびポート番号、認証方式の情報、SSL(Secure Socket Layer)オプションを加えた情報をXMPPログイン情報取得応答<D−0−1R>として被制御機器20に送信する(図19:ステップS1007)。
被制御機器20は、ダイレクトアクセス管理サーバ40内のSOAPサーバ42からFull JID(D)、XMPPログインパスワード等を含むXMPPログイン情報取得応答<D−0−1R>を受信すると(図22:ステップS615)、Full JID(D)、XMPPログインパスワードを含むXMPPログイン認証要求<D−0−2>を、ダイレクトアクセス管理サーバ40内のXMPPサーバ43に送信する(図22:ステップS616)。
ダイレクトアクセス管理サーバ40内のXMPPサーバ43は、被制御機器20よりXMPPログイン認証要求<D−0−2>を受信すると(図19:ステップS1008)、このXMPPログイン認証要求<D−0−2>に含まれているFull JID(D)、XMPPログインパスワードおよびXMPPログインパスワードの有効期限のチェックを行い(図19:ステップS1009)、Full JID(D)が記憶部41に記憶されているものと一致しない、または、XMPPログインパスワードが記憶部41に記憶されているものと一致しない、または、XMPPログインパスワードの有効期限が切れている場合には、XMPPログイン失敗を示すエラーコードをXMPPログイン認証応答<D−0−1R>として被制御機器20に送信する(図19:ステップS1010)。また、Full JID(D)。XMPPログインパスワードおよび有効期限のチェックがすべてOKならば、ダイレクトアクセス管理サーバ40内のXMPPサーバ43は、XMPPログイン許可を示すコードをXMPPログイン認証応答<D−0−1R>として被制御機器20に送信する(図19:ステップS1011)。
被制御機器20は、ダイレクトアクセス管理サーバ40よりXMPPログイン失敗を示すエラーコードをXMPPログイン認証応答<D−0−2R>として受信すると(図22:ステップS619)、ステップS614に戻って、再度XMPPログイン情報の取得要求を行う。すなわち、XMPPログインパスワードの有効期限が切れている可能性があるため、再度、XMPPログイン情報の取得要求処理を行う。また、ダイレクトアクセス管理サーバ40よりXMPPログイン許可を示すコードをXMPPログイン認証応答<D−0−2R>として受信すると(図22:ステップS618)、被制御機器20は、XMPPログイン処理が完了する。
なお、被制御機器20は、ダイレクトアクセス管理サーバ40内のSOAPサーバ42より、機器認証が必要であることを示すエラーコードをXMPPログイン情報取得応答<D−0−1R>として受信した場合には(図22:ステップS617)、自機が正常にダイレクトアクセス管理サーバ40に登録されていないか、もしくは、機器認証継続IDの有効期限が切れている可能性があるため、再度、自身に予め設定されている認証方式の情報および機器認証情報を含む機器認証要求<R−0>をダイレクトアクセス管理サーバ40内のSOAPサーバ42に送信して自身の機器認証をやりなおす(図22:ステップS602)。
上記のように、このネットワークシステムでは、ダイレクトアクセス管理サーバ40にて、被制御機器20がXMPPサーバ43にログインするために必要なXMPPログインID(Full JID)及びXMPPログインパスワードをそれぞれ生成し、被制御機器20へ配布している。このFull JIDは、たとえば図26に示すように、Bare JID部とResource部とで構成される。Bare JID部には被制御機器に割り当てられた被制御機器管理IDが用いられ、Resource部には機器認証情報から得た製品コード及びシリアルナンバーが用いられている。また、図27に示すように、Resource部には制御機器とサービスの組み合わせを識別するための制御機器・サービス管理IDを用いてもよい。
ところで、ステップS611で自動接続フラグがオンにセットすることにより、被制御機器20は次回の接続時、例えば被制御機器20の電源が一旦オフされ、その後に再投入された時、或いはXMPPサーバ43とのセッション切断後のセッション確立の時には、ステップS601の自動接続フラグのチェックの後、ステップS614のXMPPログイン情報取得要求<D−0−1>の送信から処理を開始する。すなわち、被制御機器20は再接続時には機器認証のための処理、制御機器10からの被制御機器登録用パスワードの取得、被制御機器登録のための処理をスキップしてXMPPログインのための処理に入る。これにより、被制御機器20は再接続時には、XMPPログインのための処理を行うだけで、XMPPサーバ43の間での接続セッションを確立することができる。
以上で、制御機器である制御機器10の制御対象として、被制御機器20を関連付けるための処理が完了する。以下では、関連付けられた2つの機器の間で、被制御機器20が制御機器10に向けてメッセージを送信する際の具体的な処理に関して説明する。
[3.メッセージ送信処理]
次に、被制御機器20で発生したイベントに関するメッセージを送信するために必要な処理について説明する。
[3−1.メッセージ送信設定]
まず、被制御機器20がメッセージを送信する際に参照する設定を、制御機器10から被制御機器20に対して指示する、メッセージ送信設定の動作を説明する。
図4はメッセージ送信設定時の情報の流れを示すシーケンス図である。図5は図4のメッセージ送信設定時のインタフェース機能をまとめた図表である。図13はメッセージ送信設定時の制御機器10の動作を示すフローチャートである。図15及び図16はメッセージ送信設定時のサービスサーバ30の動作を示すフローチャートである。図20はメッセージ送信設定時のダイレクトアクセス管理サーバ40の動作を示すフローチャートである。図23はメッセージ送信設定時およびメッセージ送信時の被制御機器20の動作を示すフローチャートである。
制御機器10のユーザから、メッセージ送信設定を開始するために、操作入力部を操作してメッセージ送信設定開始の指示が制御機器10に与えられると(図13:ステップS801)、制御機器10は自身に予め設定されているユーザ識別情報を含む被制御機器リスト取得要求<D−1>をサービスサーバ30に送信する(図13:ステップS802)。
サービスサーバ30は、制御機器10より被制御機器リスト取得要求<D−1>を受信すると(図15:ステップS901)、この被制御機器リスト取得要求<D−1>に含まれるユーザ識別情報に対応する制御機器・サービス管理IDが記憶部31に記憶されているかどうかを判定する(図15:ステップS902)。ユーザ識別情報に対応する制御機器・サービス管理IDが記憶部31に記憶されていない場合、サービスサーバ30は、被制御機器の登録が必要であることを示すエラーコードを被制御機器リスト取得応答<D−3R>として制御機器10に送信する(図15:ステップS903)。ユーザ識別情報に対応する制御機器・サービス管理IDが記憶部31に記憶されている場合は、ダイレクトアクセス管理サーバ40に管理されている制御機器・サービス管理IDに関連付けられている被制御機器の一覧を取得するために、サービスサーバ30は、サービスを識別する情報であるサービスIDおよび制御機器・サービス管理IDを含む被制御機器リスト取得要求<D−2>をダイレクトアクセス管理サーバ40内のSOAPサーバ42に送信する(図15:ステップS904)。
ダイレクトアクセス管理サーバ40内のSOAPサーバ42は、サービスサーバ30からの被制御機器リスト取得要求<D−2>を受信すると(図20:ステップS1012)、この被制御機器リスト取得要求<D−2>に含まれるサービスIDおよび制御機器・サービス管理IDの組み合わせが記憶部41に記憶されているかどうかを判定し(図20:ステップS1013)、もし記憶されていない場合には、未登録であることを示すエラーコードを被制御機器リスト取得応答<D−2R>としてサービスサーバ30に送信する(図20:ステップS1014)。サービスサーバ30は、ダイレクトアクセス管理サーバ40内のSOAPサーバ42から未登録であることを示すエラーコードを被制御機器リスト取得応答<D−2R>として受信した場合は(図15:ステップS905)、被制御機器の登録が必要であることを示すエラーコードを被制御機器リスト取得応答<D−3>として制御機器10に送信する(図15:ステップS906)。制御機器10は、サービスサーバ30よりエラーコードを被制御機器リスト取得応答<D−3>として受信した場合(図13:ステップS803)、サービス対象の被制御機器の登録が必要であることを示すエラーメッセージを、表示部を通じてユーザに表示する(図13:ステップS804)。
また、図20のステップS1013の判定で、被制御機器リスト取得要求<D−2>に含まれるサービスIDおよび制御機器・サービス管理IDの組み合わせが記憶部41に記憶されていることが判定された場合、ダイレクトアクセス管理サーバ40内のSOAPサーバ42は、記憶部41に記憶されている制御機器・サービス管理IDと被制御機器管理IDとの紐付け内容に従って、制御機器10から制御可能な被制御機器の被制御機器管理IDに対して改めて振り直した番号と被制御機器の機器認証情報に含まれる機器名称等からなる一覧を被制御機器リストとして生成し、この被制御機器リストを制御機器・サービス管理IDと対応付けて記憶部41に保存するとともに、この被制御機器リストを含む被制御機器リスト取得応答<D−2R>をサービスサーバ30に送信する(図20:ステップS1015)。
サービスサーバ30は、ダイレクトアクセス管理サーバ40内のSOAPサーバ42から被制御機器リストを含む被制御機器リスト取得応答<D−2R>を受信した場合は(図15:ステップS907)、この被制御機器リストを含む被制御機器リスト取得応答<D−3>を制御機器10に送信する(図15:ステップS908)。
制御機器10は、被制御機器リストを含む被制御機器リスト取得応答<D−3>を受信した場合(図13:ステップS805)、その被制御機器リストに複数の被制御機器の番号が存在するかどうかを判定する(図13:ステップS806)。複数の被制御機器の番号が存在する場合には、制御機器10は、その被制御機器リストの内容を表示部に表示して(図13:ステップS807)、ユーザにその中から1つの被制御機器の番号を選択させ(図13:ステップS808)、その選択された被制御機器の番号を記憶部11に保存する(図13:ステップS809,S811)。複数の被制御機器が存在しない場合には、その一つの被制御機器の番号を記憶部11に保存する(図13:ステップS810,S811)。
次に、制御機器10は、記憶部11に記憶されているユーザ識別情報、被制御機器の番号、メッセージ種別、メッセージ送信設定、および付加情報を含むメッセージ送信設定要求<M−A−1>をサービスサーバ30に送信する(図13:ステップS812)。
ここで、メッセージ種別とは、異なる種類のメッセージを表現するコードであり、例えば、URN(Uniform Resource Name)やその他の簡易なIDなどが用いられる。メッセージ送信設定は、制御機器・サービス管理IDごと及びメッセージ種別ごとのメッセージ送信の要否を設定する情報である。付加情報は任意の付加情報であり、この実施形態では、サービスサーバ30およびダイレクトアクセス管理サーバ40での負荷分散パラメータを付加情報として採用している。負荷分散パラメータとしては、メッセージ種別ごとのメッセージ送信の待機時間などが用いられる。
サービスサーバ30は、制御機器10からメッセージ送信設定要求<M−A−1>を受信すると(図16:ステップS909)、利用可能なXMPPセッションID、すなわちメッセージ送信設定要求<M−A−1>に含まれる制御機器10のユーザ識別情報に関連付けられてXMPPサーバ43との間で確立されている接続セッションを識別するIDが記憶部31に記憶されているか否かを調べる(図16:ステップS910)。利用可能なXMPPセッションIDが記憶されていない場合には、サービスサーバ30は、XMPPサーバ43とXMPPセッションを確立するために、サービスID、制御機器・サービス管理ID、被制御機器の番号を含むXMPPログイン要求<D−5>をダイレクトアクセス管理サーバ40内のXMPPサーバ43に送信する(図16:ステップS912)。
ダイレクトアクセス管理サーバ40内のXMPPサーバ43は、サービスサーバ30からのXMPPログイン要求<D−5>を受信すると(図19:ステップS1016)、このXMPPログイン要求<D−5>に含まれるサービスID、制御機器・サービス管理ID、および被制御機器の番号の組み合わせが記憶部41に記憶されているかどうかを判定する(図19:ステップS1017)。記憶されていない場合、ダイレクトアクセス管理サーバ40内のSOAPサーバ42は、対応するサービス対象の被制御機器が存在しないことを示すエラーコードをXMPPログイン応答<D−5R>としてサービスサーバ30に送信する(図19:ステップS1018)。この後、ダイレクトアクセス管理サーバ40の動作は終了となる。対応するサービス対象の被制御機器が記憶部41に記憶されている場合、ダイレクトアクセス管理サーバ40内のXMPPサーバ43は、XMPPセッションIDを生成し、このXMPPセッションIDをサービスID、制御機器・サービス管理ID、被制御機器の番号と対応付けて記憶部41に保存し(図19:ステップS1019)、このXMPPセッションIDを含むXMPPログイン応答<D−5R>をサービスサーバ30に送信する(図19:ステップS1020)。
サービスサーバ30は、ダイレクトアクセス管理サーバ40内のXMPPサーバ43からXMPPセッションIDを含むXMPPログイン応答<D−5R>を受信すると(図16:ステップS913)、このXMPPログイン応答<D−5R>に含まれるXMPPセッションIDをサービスID、制御機器・サービス管理ID、被制御機器リスト番号と対応付けて記憶部31に保存する(図16:ステップS914)。
一方、サービスサーバ30によるステップS910の判定の結果、利用可能なXMPPセッションIDが既に記憶部31に記憶されている場合、またはステップS914のXMPPセッションIDの保存後、サービスサーバ30はサービスID、制御機器・サービス管理ID、XMPPセッションID、メッセージ種別、メッセージ送信設定情報、付加情報を含むメッセージ送信設定要求<M−A−2>をダイレクトアクセス管理サーバ40内のSOAPサーバ42に送信する(図16:ステップS915)。ここで、制御機器・サービス管理IDは、制御機器10から受信したメッセージ送信設定要求<M−A−1>に含まれるユーザ識別情報に対応付けて記憶部31に記憶されていた制御機器・サービス管理IDである。
ダイレクトアクセス管理サーバ40内のSOAPサーバ42は、サービスサーバ30からのメッセージ送信設定要求<M−A−2>を受信すると(図20:ステップS1021)、このメッセージ送信設定要求<M−A−2>に含まれているサービスIDと制御機器・サービス管理IDの組み合わせが記憶部41に記憶されているかどうかを判定し(図20:ステップS1022)、記憶されていない場合、被制御機器の登録が必要であることを示すエラーコードをメッセージ送信設定応答<M−A−5>としてサービスサーバ30に送信する(図20:ステップS1023)。
サービスサーバ30は、ダイレクトアクセス管理サーバ40内のSOAPサーバ42から被制御機器の登録が必要であることを示すエラーコードをメッセージ送信設定応答<M−A−5>として受信すると(図16:ステップS917)、この被制御機器の登録が必要であることを示すエラーコードをメッセージ送信設定応答<M−A−6>として制御機器10に送信する(図16:ステップS918)。制御機器10は、サービスサーバ30から被制御機器の登録が必要であることを示すエラーコードをメッセージ送信設定応答<M−A−6>として受信すると(図13:ステップS818)、被制御機器の登録が必要であることを表示部を通じてユーザに表示する(図13:ステップS819)。
また、図20のステップS1022において、メッセージ送信設定要求<M−A−2>に含まれているサービスIDと制御機器・サービス管理IDの組み合わせが記憶部41に記憶されている場合には、ダイレクトアクセス管理サーバ40内のSOAPサーバ42は、メッセージ送信設定要求<M−A−2>に含まれているXMPPセッションIDが、メッセージ送信設定要求<M−A−2>に含まれているサービスIDと制御機器・サービス管理IDとの組み合わせに対応付けられて記憶部41に記憶されているかどうかを判定する(図20:ステップS1024)。記憶されていない場合、ダイレクトアクセス管理サーバ40内のSOAPサーバ42は、不正XMPPセッションIDであることを示すエラーコードをメッセージ送信設定応答<M−A−5>としてサービスサーバ30に送信する(図20:ステップS1025)。
サービスサーバ30は、ダイレクトアクセス管理サーバ40内のSOAPサーバ42より、不正XMPPセッションIDであることを示すエラーコードをメッセージ送信設定応答<M−A−5>として受信すると(図16:ステップS916)、ステップS912に戻ってXMPPログイン要求<D−5>をダイレクトアクセス管理サーバ40内のXMPPサーバ43に送信して、再度XMPPセッションの確立を行う。
また、図20のステップS1024で、メッセージ送信設定要求<M−A−2>に含まれているXMPPセッションIDが、メッセージ送信設定要求<M−A−2>に含まれているサービスIDと制御機器・サービス管理IDとの組み合わせに対応付けられて記憶部41に記憶されている場合は、ダイレクトアクセス管理サーバ40内のSOAPサーバ42は、メッセージ送信設定要求<M−A−2>に含まれているメッセージ種別、メッセージ送信設定、付加情報を含むメッセージ送信設定要求<M−A−3>を被制御機器20にXMPPサーバ43と被制御機器20との間で確立されている常時接続セッションを通じて送信する(図20:ステップS1026)。
被制御機器20は、ダイレクトアクセス管理サーバ40内のSOAPサーバ42よりメッセージ送信設定要求<M−A−3>を受信すると(図23:ステップS701)、このメッセージ送信設定要求<M−A−3>に含まれるメッセージ種別、メッセージ送信設定、付加情報の内容が被制御機器20にとって適切であるかどうかをチェックする(図23:ステップS702)。具体的には、被制御機器20が対応しているイベントに相当するメッセージ種別が指定された場合は適切と判断する。メッセージ送信設定はON、またはOFFが指定された場合は適切と判断する。付加情報はメッセージ種別毎に定義された形式、内容に合致した場合は適切と判断する。
被制御機器20は、このチェックでメッセージ種別、メッセージ送信設定、付加情報の内容が被制御機器20にとって不適切であることを判断した場合、メッセージ送信設定のNGを示す被制御機器側結果コードを含むメッセージ送信設定応答<M−A−4>をダイレクトアクセス管理サーバ40に送信して(図23:ステップS703)、処理を終了する。
ダイレクトアクセス管理サーバ40内のSOAPサーバ42は、被制御機器20よりメッセージ送信設定のNGを示す被制御機器側結果コードをメッセージ送信設定応答<M−A−4>として受信した場合(図20:ステップS1029)、このメッセージ送信設定のNGを示す被制御機器側結果コードをメッセージ送信設定応答<M−A−5>としてサービスサーバ30に送信する(図20:ステップS1030)。サービスサーバ30は、ダイレクトアクセス管理サーバ40内のSOAPサーバ42よりメッセージ送信設定のNGを示す被制御機器側結果コードをメッセージ送信設定応答<M−A−5>として受信した場合(図16:ステップS919)、メッセージ送信設定のNGを示す被制御機器側結果コードをメッセージ送信設定応答<M−A−6>として制御機器10に送信する(図16:ステップS920)。制御機器10は、サービスサーバ30よりメッセージ送信設定のNGを示す被制御機器側結果コードをメッセージ送信設定応答<M−A−6>として受信すると(図13:ステップS813)、メッセージ送信設定要求<M−A−1>に付加して送信したメッセージ種別、メッセージ送信設定、付加情報の内容が、メッセージ送信設定対象の被制御機器20において不適切であったためメッセージ送信設定に失敗したことを表示部を通じてユーザに表示する(図13:ステップS814)。
また、被制御機器20は、図23のステップS702でのチェックの結果、ダイレクトアクセス管理サーバ40内のSOAPサーバ42より受信したメッセージ送信設定要求<M−A−3>に含まれるメッセージ種別、メッセージ送信設定、付加情報の内容が被制御機器20にとって適切であることを判断した場合には、これらメッセージ種別、メッセージ送信設定、付加情報を記憶部21に保存する(図23:ステップS704)。次に、被制御機器20は、メッセージ送信設定が成功したことを示す被制御機器側結果コードをメッセージ送信設定応答<M−A−4>としてダイレクトアクセス管理サーバ40内のSOAPサーバ42に送信する(図23:ステップS705)。
ダイレクトアクセス管理サーバ40内のSOAPサーバ42は、被制御機器20よりメッセージ送信設定成功を示す被制御機器側結果コードをメッセージ送信設定応答<M−A−4>として受信した場合(図20:ステップS1027)、メッセージ送信設定成功を示す被制御機器側結果コードをメッセージ送信設定応答<M−A−5>としてサービスサーバ30に送信する(図20:ステップS1028)。サービスサーバ30は、ダイレクトアクセス管理サーバ40内のSOAPサーバ42よりメッセージ送信設定成功を示す被制御機器側結果コードを含むメッセージ送信設定応答<M−A−5>を受信した場合(図16:ステップS921)、メッセージ送信設定成功を示す被制御機器側結果コードをメッセージ送信設定応答<M−A−6>として制御機器10に送信する(図16:ステップS922)。制御機器10は、サービスサーバ30よりメッセージ送信設定成功を示す被制御機器側結果コードをメッセージ送信設定応答<M−A−6>として受信すると(図13:ステップS815)、表示部を通じてユーザにメッセージ送信設定成功を表示する(図13:ステップS816)。
サービスサーバ30は、ステップS920、ステップS922でメッセージ送信設定応答<M−A−6>を制御機器10に送信した後、ダイレクトアクセス管理サーバ40内のXMPPサーバ43に、サービスID、制御機器・サービス管理ID、XMPPセッションIDを含むXMPPログアウト通知<C−5>を送信する(図16:ステップS923)。この後、サービスサーバ30は、XMPPセッションIDのエントリを消去する(図16:ステップS924)。ダイレクトアクセス管理サーバ40内のXMPPサーバ43は、サービスサーバ30からのXMPPログアウト通知<C−5>を受信すると(図20:ステップS1041)、このXMPPログアウト通知<C−5>に含まれるXMPPセッションIDを記憶部41から削除する(図20:ステップS1042)。
また、被制御機器20は、図23のステップS705にて、メッセージ送信設定が成功したことを示す被制御機器側結果コードをメッセージ送信設定応答<M−A−4>としてダイレクトアクセス管理サーバ40内のSOAPサーバ42に送信した後、取得したメッセージ送信設定をもとにメッセージ送信がON(有効)に設定されたか否かを判断する(図23:ステップS706)。メッセージ送信がONに設定されていない場合、被制御機器20は処理を終了する。
[3−2.メッセージ送信設定のON通知)
図6はメッセージ送信設定のON通知に関するシーケンス図である。図7は図6のメッセージ送信設定のON通知時のインタフェース機能をまとめた図表である。図17はサービスサーバ30のメッセージ受信時のサービスサーバ30の動作を示すフローチャートである。図21はメッセージ送信設定のON通知時およびメッセージ送信時のダイレクトアクセス管理サーバの動作を示すフローチャートである。メッセージ送信設定のON通知時およびメッセージ送信時の被制御機器20の動作は図23に示されている。
被制御機器20は、ステップS706でメッセージ送信がONに設定されていることを判断した場合、メッセージ送信設定のON通知を制御機器10のユーザに通知するために、発信元を示す機器認証継続ID、宛先を示す制御機器・サービス管理ID、メッセージ種別、メッセージ(空)、メッセージモード、メッセージIDを含むON通知メッセージを生成する(図23:ステップS707)。ここで、宛先を示す制御機器・サービス管理IDは、メッセージ送信設定でメッセージ送信が必要であることが設定された制御機器・サービス管理IDである。メッセージモードとは、イベント通知のメッセージとメッセージ送信設定のON通知のメッセージとを識別するための情報であり、今回はメッセージ送信設定のON通知である。メッセージ種別とは、イベントの種類を識別するためのパラメータであり、今回はメッセージ送信設定のON通知であるため、メッセージ送信設定でメッセージ送信が必要であることが設定されたメッセージ種別とする。
次に、被制御機器20は、このON通知メッセージ<M−B−1>をダイレクトアクセス管理サーバ40内のSOAPサーバ42に送信する(図23:ステップS724)。
ダイレクトアクセス管理サーバ40内のSOAPサーバ42は、被制御機器20から、メッセージ送信設定のON通知メッセージ<M−B−1>を受信すると(図21:ステップS1031)、このON通知メッセージ<M−B−1>に含まれる機器認証継続IDとこの機器認証継続IDの有効期限のチェックを行う(図21:ステップS1032)。このチェックでメッセージ<M−B−1>に含まれている機器認証継続IDが、ダイレクトアクセス管理サーバ40の記憶部41に記憶されているものと一致しない場合、もしくは、有効期限が切れている場合には、被制御機器20が正常にダイレクトアクセス管理サーバ40に登録されていないか、もしくは、過去に登録されていたが登録時の機器認証継続IDの有効期限が切れているかであるため、機器認証が必要であることを示すエラーコードをメッセージ受信応答<M−B−5>として被制御機器20に送信する(図21:ステップS1033)。
被制御機器20は、機器認証が必要であることを示すエラーコードをメッセージ受信応答<M−B−5>として受信した場合(図23:ステップS725)、自身に予め設定されている認証方式の情報および機器認証情報を含む機器認証要求<R−0>をダイレクトアクセス管理サーバ40内のSOAPサーバ42に送信する(図23:ステップS730)。
ダイレクトアクセス管理サーバ40内のSOAPサーバ42が被制御機器20からの機器認証要求<R−0>を受信した際の動作は、図18のステップS513からステップS518で説明したとおりである。すなわち、ダイレクトアクセス管理サーバ40内のSOAPサーバ42は、被制御機器20が正当な機器であるかどうかを、機器認証要求<R−0>に含まれる認証方式の情報および機器認証情報に基づき判定し(図18:ステップS514)、正当な機器であることが判定された場合、すなわち、認証方式があらかじめ決められている認証方式と一致し、かつ機器認証情報があらかじめ決められている認証方式の形式である場合には、SOAPサーバ42は、その被制御機器20に対して割り当てる機器認証継続IDを生成して(図18:ステップS516)、この機器認証継続IDと、機器認証要求<R−0>に含まれる機器認証情報とを対応付けて記憶部41に保存し(図18:ステップS517)、上記の生成した機器認証継続IDとその有効期限の情報を含む機器認証応答<R−0R>を被制御機器20へ送信する(図18:ステップS518)。
被制御機器20は、ダイレクトアクセス管理サーバ40内のSOAPサーバ42から、機器認証継続IDとその有効期限の情報とを含む機器認証応答<R−0R>を受信すると(図23:ステップS731)、この機器認証応答<R−0R>に含まれる機器認証継続ID、その有効期限の情報を機器認証情報と対応付けて記憶部21に保存する(図23:ステップS732)。この後、被制御機器20は、ステップS724に戻って、ダイレクトアクセス管理サーバ40内のSOAPサーバ42へのON通知メッセージ<M−B−1>の送信をやり直す。
また、ダイレクトアクセス管理サーバ40内のSOAPサーバ42は、図21のステップS1032のチェック結果がOKの場合、すなわち被制御機器20より受信したON通知メッセージ<M−B−1>に含まれる機器認証継続IDが記憶部41に記憶されているものと一致し、かつその機器認証継続IDの有効期限が切れていない場合、記憶部41から、その機器認証継続IDに対応する被制御機器管理IDおよび機器認証情報を検索する(図21:ステップS1034)。続いて、ダイレクトアクセス管理サーバ40内のSOAPサーバ42は、検索された被制御機器管理IDに対して振り直されて記憶部41に記憶された被制御機器の番号を検索するとともに、被制御機器20より受信したON通知メッセージ<M−B−1>に含まれる制御機器・サービス管理IDに対応付けて記憶部41に記憶されているサービスサーバ30のURIを検索する(図21:ステップS1035)。このステップS1035の処理は、被制御機器20から受信したメッセージ<M−B−1>に宛先として含まれる制御機器・サービス管理IDが複数の要素からなる場合には、要素数の回数繰り返されるが、今回はON通知であるため、制御機器・サービス管理IDの配列は単一の要素(設定を行った被制御機器・サービス管理ID)となり、繰り返しは発生しない。
次に、ダイレクトアクセス管理サーバ40は、同一のサービスサーバ30のURI宛のメッセージをグループ化する(図21:ステップS1036)。例えば、一つの被制御機器20から、複数の制御機器・サービス管理ID向けに発信されるメッセージを、宛先サービスサーバごとに束ねて、それぞれのサービスサーバに対して一回ずつメッセージを転送する。これにより、ダイレクトアクセス管理サーバ40からサービスサーバ30への一定時間内でのメッセージ送信回数の最大値をサービスサーバ30の接続台数分に抑えることができるので、ダイレクトアクセス管理サーバ40およびサービスサーバ30の負荷を軽減することに寄与する。
次に、ダイレクトアクセス管理サーバ40は、グループ化されたON通知メッセージ<M−B−2>を上記のサービスサーバ30のURI宛に送信する(図21:ステップS1037)。このON通知メッセージ<M−B−2>には、発信元を示す被制御機器の番号の配列および被制御機器製品名の配列、宛先を示す制御機器・サービス管理IDの配列、メッセージ種別、メッセージ(空)、ON通知であることを示すメッセージモード、メッセージIDが含まれている。
サービスサーバ30は、ダイレクトアクセス管理サーバ40からのON通知メッセージ<M−B−2>を受信すると(図17:ステップS931)、このON通知メッセージ<M−B−2>に含まれる制御機器・サービス管理IDをもとにメッセージの送信先である制御機器10のユーザの宛先を特定する(図17:ステップS932)。この処理に関し、サービスサーバ30の記憶部31には、制御機器・サービス管理IDとユーザ識別情報とが対応付けて記憶され、さらにユーザ識別情報と制御機器10のユーザの電子メールアドレスとが対応付けて記憶されているので、サービスサーバ30は、ダイレクトアクセス管理サーバ40から受信したON通知メッセージ<M−B−2>に含まれる制御機器・サービス管理IDに対応する制御機器10のユーザの電子メールアドレスをメッセージの送信先である制御機器10のユーザの宛先として特定する。制御機器10のユーザの電子メールアドレスは、事前に、制御機器10内のアプリケーションあるいは携帯ウェブサイトを通じてサービスサーバ30にユーザ識別情報と対応付けて登録されることとしている。この電子メールアドレスの登録は、制御機器登録と同時でもよいし独立して行ってもよい。
次に、サービスサーバ30は、ダイレクトアクセス管理サーバ40から取得したON通知メッセージ<M−B−2>に含まれる被制御機器製品名、メッセージ種別、およびメッセージモードから、ユーザに提示するメッセージを生成し(図17:ステップS933)、ステップS932で特定した宛先に向けて、このメッセージ<M−B−3>を送信する(図17:ステップS934)。
次に、サービスサーバ30は、メッセージ送信設定および付加情報を更新する必要があるかどうかを判断する(図17:ステップS935)。具体的には、被制御機器20からサービスサーバ30へのメッセージ送信で、ダイレクトアクセス管理サーバ40およびサービスサーバ30に過度なアクセス負荷が加わることを回避するために、サービスサーバ30およびダイレクトアクセス管理サーバ40のアクセス負荷の指標として、例えば、メッセージ送信の頻度とこれに対して予め更新の基準として設定された上限値/下限値とを比較して付加情報を更新する必要があるかどうかを判断する。この判断で、メッセージ送信の頻度の値が上限値を超える場合には、負荷分散パラメータであるメッセージ送信の待機時間を長くするように更新し、逆にメッセージ送信の頻度の値が下限値を下回る場合には、待機時間を短くするように更新を行う。また、サービスサーバ30はサービスの内容に変更があった場合に、メッセージ送信設定の更新の必要があることを判断し、その更新内容を含むメッセージ送信設定を作成する。
上記のステップS932からステップS936までの処理は、ダイレクトアクセス管理サーバ40より受信したON通知メッセージ<M−B−2>に含まれる、制御機器・サービス管理IDが複数の要素からなる場合、その要素数の回数繰り返えされるが、今回はON通知の処理であるため、宛先の制御機器・サービス管理IDが1つの要素からなるため、繰り返し処理は発生しない
この後、サービスサーバ30は、応答コードの配列、応答メッセージの配列、更新されたメッセージ送信設定の配列、更新された付加情報の配列を含むメッセージ受信応答<M−B−4>をダイレクトアクセス管理サーバ40に送信する(図17:ステップS937)。
ここで応答コードは、メッセージが正常に受信できたかどうかを示す値を指定するものである。例えば既に登録が解除された制御機器へのメッセージを受信した場合、サービスサーバはその旨を表すエラーコードを応答コードに指定する。応答メッセージは、サービスサーバが受信したメッセージに対して返信すべき内容である。ON通知メッセージの場合は、応答メッセージは空でよい。
ダイレクトアクセス管理サーバ40は、サービスサーバ30からメッセージ受信応答<M−B−4>を受信する(図21:ステップS1038)。そして、ダイレクトアクセス管理サーバ40は、ステップS1037のメッセージ送信からステップS1038のメッセージ受信応答までの処理を、ステップS1035で検索されたサービスサーバ30のURIの数だけ繰り返すことによって、被制御機器20を制御対象とする制御機器10にサービスを提供する各サービスサーバ30からのメッセージ送信応答<M−B−4>を受信する。
この後、ダイレクトアクセス管理サーバ40は、各サービスサーバ30から受信したメッセージ送信応答<M−B−4>に含まれる応答コードの配列、応答メッセージの配列、更新されたメッセージ送信設定の配列、更新された付加情報の配列を含むメッセージ受信応答<M−B−5>を被制御機器20に送信して(図21:ステップS1039)、処理を終了する。
被制御機器20は、ダイレクトアクセス管理サーバ40からのメッセージ受信応答<M−B−5>を受信し(図23:ステップS726)、このメッセージ受信応答<M−B−5>に、更新されたメッセージ送信設定の配列、更新された付加情報の配列が含まれているかどうかを判断する(図23:ステップS727)。更新されたメッセージ送信設定の配列、更新された付加情報の配列が含まれていない場合には、被制御機器20は何もせずに処理を終了する。更新されたメッセージ送信設定の配列、更新された付加情報の配列が含まれている場合には、被制御機器20は、その更新されたメッセージ送信設定および付加情報の内容が被制御機器20にとって適切であるかどうかをチェックする(図23:ステップS728)。このチェックでメッセージ送信設定および付加情報の内容が被制御機器20にとって不適切ならば、被制御機器20は処理を終了する。適切であるならば、そのメッセージ送信設定および付加情報を記憶部21に上書きする(図23:ステップS729)。これにより、サービスサーバ30の負荷に応じて、被制御機器20のメッセージ送信設定が更新される。以上で、被制御機器20からのON通知メッセージの送信処理が終了となる。
[3−3.イベント通知のメッセージ送信処理]
次に、被制御機器20においてイベントが発生した場合のメッセージ送信処理について説明する。
図8はイベント通知のメッセージ送信時の情報の流れを示すシーケンス図である。図9はイベント通知のメッセージ送信時のインタフェース機能をまとめた図表である。
被制御機器20がDVRである場合、例えば、「おすすめ番組」「録画不可予約」「タイトル録画完了」「消去対象タイトル」「残量不足アラート」「本体操作アラート」などのイベントが発生する。
「おすすめ番組」とは、例えば、自動録画予約の候補に挙がったものの、他の録画予約との重複によって録画できない番組の中で、特にユーザの嗜好に合った番組、例えば、ユーザが予め設定した好みのジャンル名、タイトル名、出演者名などのキーをコンテンツガイドデータに含むような番組である。被制御機器20にて、この「おすすめ番組」が検出されたならば、被制御機器20から制御機器10に、この「おすすめ番組」の録画予約に必要な情報がメッセージとして送信され、制御機器10の表示部に表示される。制御機器10のユーザによって、この「おすすめ番組」の録画予約を要求する入力が行われることによって、制御機器10から被制御機器20に、その録画予約の要求が送信され、被制御機器20にて録画予約の処理が行われる。
「録画不可予約」とは、録画予約リストに登録されているが、ディスク残量不足や、他の予約との重複により、録画できない予約である。被制御機器20にて、この「録画不可予約」が検出されたならば、例えば、被制御機器20から制御機器10に、その「録画不可予約」に関する予約情報と理由などがメッセージとして送信され、制御機器10の表示部に表示される。このとき「録画不可予約」とされたタイトルを録画したい場合には、制御機器10のユーザによって、録画予約リストを要求する入力が行われることによって、制御機器10から被制御機器20にその要求が送信され、被制御機器20は録画予約リストを制御機器10に応答する。これにより、制御機器10の表示部に録画予約リストが表示され、その中でユーザは、ディスク残量を確保するために解除したい録画予約や、「録画不可予約」に対して重複する録画予約の解除要求を入力することによって、制御機器10から被制御機器20に録画予約の解除要求が送信され、被制御機器20にて、この録画予約の解除要求が処理される。
「タイトル録画完了」とは、タイマー録画や、ユーザの好みのジャンル名、タイトル名、出演者名などをキーとする自動録画予約による録画の完了である。被制御機器20にて、この「タイトル録画完了」が検出されたならば、その録画が完了した番組のタイトルがメッセージとして制御機器10に送信される。制御機器10のユーザは、この通知を受けたなら、必要に応じて、その録画が完了した番組の保存に保護をかけるための要求を入力する。これにより制御機器10から被制御機器20に番組保護の要求が送信され、被制御機器20にて番組保護の処理が行われる。
「消去対象タイトル」とは、ユーザの好みのジャンル名、タイトル名、出演者名などをキーとする自動録画予約によって録画された番組をスケジューリングによって自動消去する機能を備えた録画機器において、自動消去の時期が近づいてきたことが判定されたタイトルである。被制御機器20にて、この「消去対象タイトル」が検出されたならば、その消去対象の番組のタイトルがメッセージとして制御機器10に送信される。制御機器10のユーザは、この通知を受けたなら、必要に応じて、その消去対象の番組の保存に保護をかけるための要求を入力する。これにより制御機器10から被制御機器20に番組保護の要求が送信され、被制御機器20にて番組保護の処理が行われる。
「残量不足アラート」とは、被制御機器20のディスク残量が一定サイズ以下になったことを示すアラートである。被制御機器20にて、この「残量不足アラート」が検出されたならば、ディスク残量がメッセージとして制御機器10に送信され、制御機器10の表示部にその旨が表示される。制御機器10のユーザは、この「残量不足」の通知を受けたなら、被制御機器20に録画された番組の中で消去する番組を選択して番組消去の要求を入力する。これにより制御機器10から被制御機器20に番組の消去の要求が送信され、被制御機器20にて番組消去の処理が行われる。
「本体操作アラート」とは、例えば、予約録画中にダイレクト録画やダビングなどの操作が行われた場合など、予約録画が取り消されそうな状況あるいは取り消された状況が発生したことのアラートである。被制御機器20にて、この「本体操作アラート」が検出されたならば、本体操作の内容および対象の予約に関する情報がメッセージとして制御機器10に送信され、制御機器10の表示部にその旨が表示される。なお、被制御機器20において、メッセージ送信の対象としているイベントの種類は上記のものに限定されるものではなく、被制御機器20に通知することが有用と考えられるものであれば何でもよい。
被制御機器20は、上記のようなイベントが発生したことを判断すると(図23:ステップS721)、このイベントの発生を制御機器10のユーザに通知するために、発信元を示す機器認証継続ID、宛先を示すメッセージ送信設定に設定された制御機器・サービス管理IDの配列、メッセージ(おすすめ番組、録画不可予約など)、メッセージモード、メッセージIDを含むイベント通知のメッセージ<M−C−1>を生成する(図23:ステップS722)。ここで、宛先を示す制御機器・サービス管理IDは、メッセージ送信設定でメッセージ送信が必要であることが設定された制御機器・サービス管理IDである。メッセージモードにはイベント通知のメッセージモードを示す値が設定される。メッセージ種別には今回のイベントの種類に対応する値が設定される。
次に、被制御機器20は、記憶部21から、当該イベントに対応するメッセージ種別に対する付加情報として設定された負荷分散パラメータ(この実施形態では待機時間とする。)を読み出し、この待機時間が経過するのを待って(図23:ステップS723)、イベント通知のメッセージ<M−C−1>をダイレクトアクセス管理サーバ40に送信する(図23:ステップS724)。
以降の動作は、メッセージ送信設定のON通知メッセージの送信時と同様である。すなわち、ダイレクトアクセス管理サーバ40は、被制御機器20からイベント通知のメッセージ<M−C−1>を受信する(図21:ステップS1031)。ダイレクトアクセス管理サーバ40は、このイベント通知のメッセージ<M−C−1>を受信すると、このイベント通知のメッセージ<M−C−1>に含まれる機器認証継続IDとこの機器認証継続IDの有効期限のチェックを行う(図21:ステップS1032)。このチェックでイベント通知のメッセージ<M−C−1>に含まれている機器認証継続IDが、ダイレクトアクセス管理サーバ40の記憶部41に記憶されているものと一致しない場合、もしくは、有効期限が切れている場合には、被制御機器20が正常にダイレクトアクセス管理サーバ40に登録されていないか、もしくは、過去に登録されていたが登録時の機器認証継続IDの有効期限が切れているかであるため、機器認証が必要であることを示すエラーコードをメッセージ受信応答<M−D−5>として被制御機器20に送信する(図21:ステップS1033)。
被制御機器20は、機器認証が必要であることを示すエラーコードをメッセージ受信応答<M−D−5>として受信した場合(図23:ステップS725)、自身に予め設定されている認証方式の情報および機器認証情報を含む機器認証要求<R−0>をダイレクトアクセス管理サーバ40内のSOAPサーバ42に送信する(図23:ステップS730)。認証方式があらかじめ決められている認証方式と一致し、かつ機器認証情報があらかじめ決められている認証方式の形式である場合には、被制御機器20は、ダイレクトアクセス管理サーバ40内のSOAPサーバ42から、機器認証継続IDとその有効期限の情報とを含む機器認証応答<R−0R>を受信して(図23:ステップS731)、この機器認証応答<R−0R>に含まれる機器認証継続ID、その有効期限の情報を機器認証情報と対応付けて記憶部21に保存する(図23:ステップS732)。この後、被制御機器20は、ステップS724に戻って、ダイレクトアクセス管理サーバ40へのメッセージ<M−C−1>の送信をやり直す。
また、ダイレクトアクセス管理サーバ40は、図21のステップS1032のチェック結果がOKの場合、すなわち被制御機器20より受信したメッセージ<M−C−1>に含まれる機器認証継続IDが記憶部41に記憶されているものと一致し、かつその機器認証継続IDの有効期限が切れていない場合、記憶部41から、その機器認証継続IDに対応する被制御機器管理IDおよび機器認証情報を検索する(図21:ステップS1034)。続いて、ダイレクトアクセス管理サーバ40は、検索された被制御機器管理IDに対して振り直されて記憶部41に記憶された被制御機器の番号を検索するとともに、被制御機器20より受信したメッセージ<M−B−1>に含まれる制御機器・サービス管理IDに対応して記憶部41に記憶されているサービスサーバ30のURIを検索する(図21:ステップS1035)。このステップS1035のサービスサーバ30のURI検索の処理は、被制御機器20から受信したメッセージ<M−C−1>に含まれる制御機器・サービス管理IDが複数の要素からなる場合には、要素数の回数繰り返される。
次に、ダイレクトアクセス管理サーバ40は、同一のサービスサーバ30のURI宛のメッセージをグループ化し(図21:ステップS1036)、それぞれのサービスサーバ30のURI宛にイベント通知のメッセージ<M−C−2>を送信する(図21:ステップS1037)。このイベント通知のメッセージ<M−C−2>には、発信元を示す被制御機器の番号の配列および被制御機器製品名の配列、宛先を示す制御機器・サービス管理IDの配列、メッセージ種別、メッセージ、メッセージモード、メッセージIDが含まれている。
サービスサーバ30は、ダイレクトアクセス管理サーバ40からイベント通知のメッセージ<M−C−2>を受信すると(図17:ステップS931)、このイベント通知のメッセージ<M−C−2>に含まれる制御機器・サービス管理IDをもとにメッセージの送信先である制御機器10の宛先を特定する(図17:ステップS932)。ここでは、前述したように、制御機器10のユーザの電子メールアドレスが特定されることになる。
次に、サービスサーバ30は、ダイレクトアクセス管理サーバ40から取得したイベント通知のメッセージ<M−C−2>の内容から、ユーザに提示するイベント通知のメッセージを生成し(図17:ステップS933)、ステップS932で特定した宛先に向けて、たとえば電子メールなどにより、このイベント通知のメッセージ<M−C−3>を送信する(図17:ステップS934)。制御機器10は、サービスサーバ30から電子メールなどによって、イベント通知のメッセージ<M−C−3>を受信し(図13:ステップS821)、このイベント通知のメッセージ<M−C−3>の内容を表示部に表示してユーザに提示する(図13:ステップS822)。
この後、サービスサーバ30は、メッセージ送信設定のON通知メッセージの送信時と同様に、メッセージ送信設定および付加情報を更新する必要があるかどうかを判断し(図17:ステップS935)、必要ならば、制御機器・サービス管理IDごとのメッセージ送信設定および付加情報の更新を行う(図17:ステップS936)。
そしてサービスサーバ30は、ダイレクトアクセス管理サーバ40より受信したイベント通知のメッセージ<M−C−2>に含まれる制御機器・サービス管理IDが複数の要素からなる場合には、上記のステップS932からステップS936までの処理を、その要素数の回数繰り返す。
この後、サービスサーバ30は、応答コードの配列、応答メッセージの配列、更新されたメッセージ送信設定の配列、更新された付加情報の配列を含むメッセージ受信応答<M−D−4>をダイレクトアクセス管理サーバ40に送信する(図17:ステップS937)。
ダイレクトアクセス管理サーバ40は、サービスサーバ30からメッセージ受信応答<M−D−4>を受信する(図21:ステップS1038)。そして、ダイレクトアクセス管理サーバ40は、ステップS1037のメッセージ送信からステップS1038のメッセージ受信応答までの処理を、ステップS1035で検索されたサービスサーバ30のURIの数だけ繰り返すことによって、被制御機器20を制御対象とする制御機器10にサービスを提供する各サービスサーバ30からのメッセージ送信応答<M−D−4>を受信する。
この後、ダイレクトアクセス管理サーバ40は、各サービスサーバ30から受信したメッセージ送信応答<M−D−4>から取り出した応答コードの配列、応答メッセージの配列、更新されたメッセージ送信設定の配列、更新された付加情報の配列を含むメッセージ受信応答<M−D−5>を被制御機器20に送信して(図21:ステップS1039)、処理を終了する。
被制御機器20は、ダイレクトアクセス管理サーバ40からのメッセージ受信応答<M−D−5>を受信し(図23:ステップS726)、これに、更新されたメッセージ送信設定、更新された付加情報が含まれているかどうかを判断する(図23:ステップS727)。更新されたメッセージ送信設定、更新された付加情報が含まれていない場合には、被制御機器20は何もせずに処理を終了する。更新されたメッセージ送信設定、更新された付加情報が含まれている場合には、次に、被制御機器20は、そのメッセージ送信設定および付加情報の内容が被制御機器20にとって適切であるかどうかをチェックする(図23:ステップS728)。このチェックでメッセージ送信設定および付加情報の内容が被制御機器20にとって不適切ならば、被制御機器20は処理を終了する。適切であるならば、そのメッセージ送信設定および付加情報を記憶部21に上書きする(図23:ステップS729)。以上で、イベント通知のメッセージ送信処理が終了となる。
[3−4.イベント通知のメッセージをダイレクトにサービスサーバ30に送信する処理]
ここまで、被制御機器20からサービスサーバ30へのイベント通知のメッセージ送信をダイレクトアクセス管理サーバ40を介して行う方式を説明したが、この方式の場合、比較的サイズの小さいメッセージをハンドリングする場合には問題ないが、サイズの大きいデータをハンドリングする場合にダイレクトアクセス管理サーバ40の負担が増大し、効率が良くない。そこで、比較的大きなメッセージを送信する場合には、被制御機器20からサービスサーバ30にメッセージをダイレクトに送信するようにしてもよい。以下に、この方式を説明する。
図10は、イベント発生時のサービスサーバ30へのダイレクトなメッセージ送信処理時の情報の流れを示すシーケンス図である。図11は図10のダイレクトなメッセージ送信処理時のインタフェース機能をまとめた図表である。このダイレクトなメッセージ送信処理時のダイレクトアクセス管理サーバ40の動作は図21に示した通りである。図24はダイレクトなメッセージ送信処理時のサービスサーバ30の動作を示すフローチャートである。図25はダイレクトなメッセージ送信処理時の被制御機器20の動作を示すフローチャートである。
なお、この方式において、被制御機器20がメッセージ送信設定を保存し、メッセージ送信設定のON通知メッセージを送信する動作は、前述の方式と同様である。
被制御機器20は、イベントが発生したことを判断すると(図25:ステップS1101)、発信元を示す機器認証継続ID、宛先を示す制御機器・サービス管理IDの配列、メッセージ種別、メッセージ(空)、メッセージモード、メッセージIDを含む、サービスサーバURIおよびワンタイムパスワード(OTP)取得のメッセージ<M−E−1>を作成する(図25:ステップS1102)。ここで、メッセージモードには、被制御機器向けのサービスサーバURIおよびセキュリティ制御のためのワンタイムパスワード(OTP)を取得するメッセージモードを示す値が設定される。
次に、被制御機器20は、記憶部21から、発生したイベントに対応するメッセージ種別に対する付加情報として設定された負荷分散パラメータ(この実施形態では待機時間とする。)を読み出し、この待機時間が経過するのを待って(図25:ステップS1103)、
サービスサーバURIおよびワンタイムパスワード(OTP)取得のメッセージ<M−E−1>をダイレクトアクセス管理サーバ40に送信する(図25:ステップS1104)。
ダイレクトアクセス管理サーバ40は、被制御機器20からのメッセージ<M−E−1>を受信すると、このメッセージ<M−E−1>に含まれる機器認証継続IDとこの機器認証継続IDの有効期限のチェックを行う(図21:ステップS1032)。このチェックでメッセージ<M−E−1>に含まれている機器認証継続IDが、ダイレクトアクセス管理サーバ40の記憶部41に記憶されているものと一致しない場合、もしくは、有効期限が切れている場合には、被制御機器20が正常にダイレクトアクセス管理サーバ40に登録されていないか、もしくは、過去に登録されていたが登録時の機器認証継続IDの有効期限が切れているかであるため、機器認証が必要であることを示すエラーコードをメッセージ受信応答<M−E−4>として被制御機器20に送信する(図21:ステップS1033)。
被制御機器20は、ダイレクトアクセス管理サーバ40より機器認証が必要であることを示すエラーコードをメッセージ受信応答<M−E−4>として受信した場合(図25:ステップS1105)、自身に予め設定されている認証方式の情報および機器認証情報を含む機器認証要求<R−0>をダイレクトアクセス管理サーバ40内のSOAPサーバ42に送信する(図25:ステップS1106)。認証方式があらかじめ決められている認証方式と一致し、かつ機器認証情報があらかじめ決められている認証方式の形式である場合には、被制御機器20は、ダイレクトアクセス管理サーバ40内のSOAPサーバ42から、機器認証継続IDとその有効期限の情報とを含む機器認証応答<R−0R>を受信して(図25:ステップS1107)、この機器認証応答<R−0R>に含まれる機器認証継続ID、その有効期限の情報を機器認証情報と対応付けて記憶部21に保存する(図25:ステップS1108)。この後、被制御機器20は、ステップS1104に戻って、ダイレクトアクセス管理サーバ40へのメッセージ<M−E−1>の送信をやり直す。
また、ダイレクトアクセス管理サーバ40は、図21のステップS1032のチェック結果がOKの場合、すなわち被制御機器20より受信したメッセージ<M−E−1>に含まれる機器認証継続IDが記憶部41に記憶されているものと一致し、かつその機器認証継続IDの有効期限が切れていない場合、記憶部41から、その機器認証継続IDに対応する被制御機器管理IDおよび機器認証情報を検索する(図21:ステップS1034)。続いて、ダイレクトアクセス管理サーバ40は、検索された被制御機器管理IDに対して振り直されて記憶部41に記憶された被制御機器の番号を検索するとともに、被制御機器20より受信したメッセージ<M−E−1>に含まれる制御機器・サービス管理IDに対応して記憶部41に記憶されているサービスサーバ30のURIを検索する(図21:ステップS1035)。このステップS1035の処理は、被制御機器20から受信したメッセージ<M−E−1>に含まれる制御機器・サービス管理IDが複数の要素からなる場合には、要素数の回数繰り返される。
次に、ダイレクトアクセス管理サーバ40は、同一のサービスサーバ30のURI宛のメッセージをグループ化し(図21:ステップS1036)、それぞれのサービスサーバ30のURI宛に、イベント通知のメッセージ<M−E−2>を送信する(図21:ステップS1037)。このイベント通知のメッセージ<M−E−2>には、発信元を示す機器認証継続ID、宛先を示す制御機器・サービス管理IDの配列、メッセージ種別、メッセージ(空)、被制御機器向けのサービスサーバURIおよびセキュリティ制御のためのワンタイムパスワード(OTP)を取得するモードを示すメッセージモード、メッセージIDが含まれている。
サービスサーバ30は、ダイレクトアクセス管理サーバ40からメッセージ<M−E−2>を受信すると(図24:ステップS1201)、被制御機器20がサービスサーバ30にダイレクトにアクセスするために必要なワンタイムパスワード(OTP)を生成し(図24:ステップS1202)、このワンタイムパスワード(OTP)を、ダイレクトアクセス管理サーバ40から受信したメッセージ<M−E−2>に含まれる、発信元を示す被制御機器の番号の配列および被制御機器製品名の配列、宛先を示す制御機器・サービス管理IDの配列、メッセージ種別と関連付けて記憶部31に保存する(図24:ステップS1203)。
続いて、サービスサーバ30は、メッセージ<M−E−2>に含まれるメッセージ種別をもとに、被制御機器20で発生したイベント通知のメッセージの送信先であるサービスサーバ30の被制御機器向けのURIを特定する(図24:ステップS1204)。この処理を行うために、サービスサーバ30は記憶部31にメッセージ種別とサービスサーバ30の被制御機器向けのURIとの対応表を予め保持している。
次に、サービスサーバ30は、ステップS1202で生成したワンタイムパスワード(OTP)とステップS1204で特定したサービスサーバ30の被制御機器向けのURIとを含む応答メッセージを生成し(図24:ステップS1205)、応答コードの配列、応答メッセージの配列、メッセージ送信設定の配列(指定なし)、付加情報の配列(指定なし)を含むメッセージ受信応答<M−E−3>をダイレクトアクセス管理サーバ40に送信して処理を終了する(図24:ステップS1206)。
ダイレクトアクセス管理サーバ40は、サービスサーバ30からのメッセージ受信応答<M−E−3>を受信する(図21:ステップS1038)。そして、ダイレクトアクセス管理サーバ40は、ステップS1037のメッセージ送信からステップS1038のメッセージ受信応答までの処理を、ステップS1035で検索されたサービスサーバ30のURIの数だけ繰り返すことによって、被制御機器20を制御対象とする制御機器10にサービスを提供する各サービスサーバ30からのメッセージ送信応答<M−E−3>を受信する。
この後、ダイレクトアクセス管理サーバ40は、各サービスサーバ30から受信したメッセージ送信応答<M−E−3>から取り出した応答コードの配列、応答メッセージの配列、メッセージ送信設定の配列(指定なし)、付加情報の配列(指定なし)を含むメッセージ受信応答<M−E−4>を被制御機器20に送信して(図21:ステップS1039)、処理を終了する。
被制御機器20は、ダイレクトアクセス管理サーバ40からのメッセージ受信応答<M−E−4>を受信し(図25:ステップS1109)、このメッセージ受信応答<M−E−4>に含まれている応答メッセージの配列から、ワンタイムパスワード(OTP)とサービスサーバ30の被制御機器向けのURIとの組み合わせを取り出して記憶部21に保存する(図25:ステップS1110)。この後、被制御機器20は、同一のサービスサーバ30の被制御機器向けのURI宛のメッセージをグループ化して(図25:ステップS1111)、それぞれのサービスサーバ30の被制御機器向けのURIに宛て、ワンタイムパスワード(OTP)、制御機器・サービス管理IDの配列、メッセージ種別、メッセージ、メッセージIDを含むメッセージ<M−E−5>を送信する(図25:ステップS1112)。
サービスサーバ30は、被制御機器20からのメッセージ<M−E−5>を受信すると(図24:ステップS1211)、このメッセージ<M−E−5>に含まれるワンタイムパスワード(OTP)が記憶部31に記憶されているものと一致するかどうかをチェックし(図24:ステップS1212)、不一致ならば、不正なワンタイムパスワード(OTP)であることを示すエラーコードをメッセージ受信応答<M−E−7>として被制御機器20に送信する(図24:ステップS1213)。
ワンタイムパスワードが一致した場合には、サービスサーバ30は、この一致したワンタイムパスワードに関連付けて記憶部31に記憶されている被制御機器の番号の配列、被制御機器製品名の配列、制御機器・サービス管理IDの配列、メッセージ種別を取得し(図24:ステップS1214)、取得した制御機器・サービス管理IDの配列をもとに、イベント通知のメッセージの送信先である制御機器10の宛先を特定する(図24:ステップS1215)。この処理は、より具体的には次のようにして行われる。サービスサーバ30の記憶部31には、制御機器・サービス管理IDとユーザ識別情報とが対応付けて記憶され、さらにユーザ識別情報と制御機器10のユーザの電子メールアドレスとが対応付けて記憶されることとしている。サービスサーバ30は、被制御機器20から受信したメッセージ<M−E−5>に含まれる制御機器・サービス管理IDに対応する制御機器10のユーザの電子メールアドレスを記憶部31から読み出し、これをイベント通知のメッセージの送信先である制御機器10の宛先として特定する。
次に、サービスサーバ30は、被制御機器20からのメッセージ<M−E−5>の内容から、ユーザに提示するイベント通知のメッセージを生成し(図24:ステップS1216)、ステップS1215で特定した宛先に向けて、たとえば電子メールなどにより、このイベント通知のメッセージ<M−E−6>を送信する(図24:ステップS1217)。制御機器10は、サービスサーバ30から電子メールなどによってイベント通知のメッセージ<M−E−6>を受信し(図13:ステップS821)、このイベント通知のメッセージ<M−E−6>の内容を表示部に表示してユーザに提示する(図13:ステップS822)。
この後、サービスサーバ30は、被制御機器20からのメッセージ送信によって、ダイレクトアクセス管理サーバ40およびサービスサーバ30に過度なアクセス負荷が加わることを回避するために、メッセージ送信の頻度と、これに対して予め更新の基準として設定された上限値/下限値とを比較して、制御機器・サービス管理IDごとのメッセージ送信設定および付加情報を更新する必要があるかどうかを判断する(図24:ステップS1218)。この判断で、メッセージ送信の頻度の値が上限値を超える場合には、負荷分散パラメータであるメッセージ送信の待機時間を長くするように更新し、逆にメッセージ送信の頻度の値が下限値を下回る場合には、待機時間を短くするように更新を行う。(図24:ステップS1219)。
そしてサービスサーバ30は、被制御機器20より受信したイベント通知のメッセージ<M−E−5>に含まれる制御機器・サービス管理IDが複数の要素からなる場合、上記のステップS1215からステップS1219までの処理を、その要素数の回数繰り返す。
この後、サービスサーバ30は、応答コードの配列、応答メッセージの配列、更新されたメッセージ送信設定の配列、更新された付加情報の配列を含むメッセージ受信応答<M−E−7>を被制御機器20に送信する(図24:ステップS1220)。
被制御機器20は、サービスサーバ30からメッセージ受信応答<M−E−7>を受信する(図25:ステップS1113)。そして、被制御機器20は、ステップS1112のメッセージ<M−E−5>の送信からステップS1113のメッセージ受信応答<M−E−7>の受信までの処理を、ステップS1111で検索されたサービスサーバ30のURIの数だけ繰り返すことによって、被制御機器20を制御対象とする制御機器10にサービスを提供する各サービスサーバ30からのメッセージ送信応答<M−E−7>を受信する。
被制御機器20は、各サービスサーバ30から受信したメッセージ送信応答<M−E−7>に、更新されたメッセージ送信設定、更新された付加情報が含まれているかどうかを判断する(図25:ステップS1114)。更新されたメッセージ送信設定、更新された付加情報が含まれていない場合には、被制御機器20は何もせずに処理を終了する。更新されたメッセージ送信設定、更新された付加情報が含まれている場合には、次に、被制御機器20は、そのメッセージ送信設定および付加情報の内容が被制御機器20にとって適切であるかどうかをチェックする(図25:ステップS1115)。このチェックでメッセージ送信設定および付加情報の内容が被制御機器20にとって不適切ならば、被制御機器20は処理を終了する。適切であるならば、そのメッセージ送信設定および付加情報を記憶部21に上書きする(図25:ステップS1116)。以上で、イベント発生時のサービスサーバ30へのダイレクトなメッセージ送信処理が終了となる。
以上説明したように、本実施形態のネットワークシステムによれば、制御機器10の側からネットワーク家電機器である被制御機器20に対してイベントに関するメッセージ送信設定を柔軟に行うことができる。また、イベント(メッセージ種別)ごと、及び制御機器・サービス管理IDごとにメッセージ送信の要否を設定することができ、柔軟かつ詳細にメッセージ送信設定を行うことができる。
さらに、本実施形態のネットワークシステムによれば、サービスサーバ30でのサービスの変更などが発生した場合には、被制御機器20からのメッセージ送信に対するメッセージ送信応答時に、そのサービスの変更内容を含むメッセージ送信設定をサービスサーバ30にて生成して被制御機器20に送信することによって、被制御機器20に保存されているメッセージ送信設定を最新の内容に更新することができる。
また、本実施形態のネットワークシステムによれば、サービスサーバ30において、メッセージ送信のためのアクセス負荷を監視して、アクセス負荷が過大とならないように、メッセージ送信応答時に負荷パラメータである付加情報を被制御機器20に送信することによって、システムの安定性の向上を図ることができる。
以上、本発明の実施形態のネットワークシステムの構成および動作を説明したが、サービスサーバ30の機能の一部は制御機器10に移すことも可能である。例えば、サービスサーバ30がもっていた、SOAPインタフェースへのアクセス機能を制御機器10がもつように変更することによって、XMPPログイン要求から始まるメッセージ送信設定の利用シーケンスは、制御機器10とダイレクトアクセス管理サーバ40間で直接行える。
以上説明した実施形態では、制御機器10とダイレクトアクセス管理サーバ40との間にサービスサーバ30を配置しているため、ダイレクトアクセス管理サーバ40は、制御機器10とサービスサーバ30との組み合わせに対して生成した制御機器・サービス管理IDを被制御機器管理IDと関連付けて記憶することとしたが、本発明はこのことに限定されない。すなわち、本発明は、サービスサーバ30を介さず、制御機器とダイレクトアクセス管理サーバ40との間で直接通信が行われる環境においても利用することができるものである。この場合にはダイレクトアクセス管理サーバ40は、上記の実施形態での制御機器・サービス管理IDに代えて制御機器を識別する制御機器管理IDを生成し、これを被制御機器管理IDと関連付けて記憶する。また、制御機器管理IDは、ダイレクトアクセス管理サーバ40にて生成してもよいし、制御機器が自身を識別することのできるIDを公開可能なものであるなら、この制御機器から与えられたIDを、被制御機器管理IDと関連付けられる制御機器管理IDとして用いてもよい。このことは、被制御機器管理IDについても同様であり、被制御機器が自身を識別することのできるIDを公開可能なものであるなら、この被制御機器から与えられたIDを、制御機器管理IDと関連付けられる被制御機器管理IDとして用いてもよい。また、ダイレクトアクセス管理サーバ40に制御機器および被制御機器として接続される機器は、それぞれ他の機器の制御を行う部分と他の機器によって制御が行われる部分の両方を有するものであってもよい。
なお、本発明は、上述の実施形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。