以下、本発明の実施の形態を図面に基づき説明する。
図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に登録されているユーザ識別情報が記憶されている。メインメモリには、電話機能部を動作させるためのプログラムのほか、サービスサーバ30への自機器の登録、コンテンツのリモート録画予約、コンテンツ取得などに関する処理を行うためのプログラムなどが記憶されている。
DVR20は、放送番組などのコンテンツをメディアに録画したり再生したりする録画再生機能部のほか、プログラムなどを記憶するメインメモリ、メインメモリに記憶されたプログラムを実行して各種の演算処理を行うCPU、ネットワークとのインタフェース部、携帯電話10とのインタフェース部、不揮発性の記憶部21、リモコン受信部、TVなどを接続するためのインタフェース部などを備える。この記憶部21には、被制御機器に固定的に割り当てられた機器認証情報が予め記憶されている。メインメモリには、DVR20の録画再生機能部を制御するためのプログラムのほか、ダイレクトアクセス管理サーバ40への被制御機器の登録、コンテンツのリモート録画予約、コンテンツ取得などに関する処理を行うためのプログラムなどが記憶されている。なお、この実施の形態ではDVR20を被制御機器としたが、ネットワーク接続機能を有する機器であれば何でもよい。たとえば、テレビでもよい。
サービスサーバ30は、携帯電話10などの制御機器に対してネットワーク越しに被制御機器にアクセスする各種のサービスを提供するサーバである。このサービスサーバ30は、たとえば、キーボード・マウスなどの入力部と、表示部と、プログラムなどを記憶するメインメモリと、メインメモリに記憶されたプログラムを実行して各種の演算処理を行うCPUと、ネットワークとの通信部と、記憶部31とを備えた、たとえば定型的なコンピュータシステムを用いて実現される。メインメモリには、コンピュータシステムを動作させるために必要な基本的なプログラムのほか、サービスを実行するために必要なプログラムなどが記憶されている。記憶部31には、サービスサーバ30が提供する個々のサービスごとにサービスサーバ及びサービスを識別するためのServiceIDが記憶されている。
ダイレクトアクセス管理サーバ40は、制御機器と、サービスサーバ30のサービスとの組み合わせと被制御機器との対応を管理するサーバである。このダイレクトアクセス管理サーバ40は、たとえば、キーボード・マウスなどの入力部と、表示部と、プログラムなどを記憶するメインメモリと、メインメモリに記憶されたプログラムを実行して各種の演算処理を行うCPUと、ネットワークとのインタフェース部と、記憶部41とを備えた、たとえば定型的なコンピュータシステムを用いて実現される。メインメモリには、コンピュータシステムを動作させるために必要な基本的なプログラムのほか、コンピュータシステムをダイレクトアクセス管理サーバとして機能させるためのプログラムなどが記憶されている。
ダイレクトアクセス管理サーバ40には、SOAP(Simple Object Access Protocol)サーバ42およびXMPP(eXtensible Messaging and Presence Protocol)サーバ43が設けられている。SOAPサーバ42は、制御機器とサービスの組み合わせの登録、被制御機器の登録、サービスサーバに対するダイレクトアクセスを行うための情報の授受などに関する処理を行うためのサーバである。XMPPサーバ43は、被制御機器であるDVR20との間で双方向の常時接続セッションを設定するためのサーバである。なお、SOAPサーバ及びXMPPサーバは、一実施例を示したものであり、SOAPサーバは他のAPI呼び出し方式を用いたサーバに、XMPPサーバは他のIMの方式を用いたサーバに、それぞれ置き換え可能である。
次に、各機器のインタフェースについて説明する。図1において[IF-**]はインタフェース番号を示している。
ダイレクトアクセス管理サーバ40のSOAPサーバ42は、サービスサーバ30からアクセスされるインタフェース[IF-02]と、DVR20からアクセスされるインタフェース[IF-00,IF-04]とを有する。SOAPサーバ42にはSOAPクライアント機能も含まれており、サービスサーバ30側のインタフェース[IF-05]へのアクセスを行う。XMPPサーバ43のインタフェースは、XMPPセッションの確立を行う際にXMPPクライアントからアクセスされる。本システム構成例では、DVR20からアクセスされるインタフェース[IF-06]がこれに該当し、XMPPセッション確立後はこのインタフェース[IF-06]を用いて双方向にメッセージをやり取りできるため、XMPPサーバ43からもDVR20のインタフェース[IF-07]にアクセスすることができる。また、ダイレクトアクセス管理サーバ40は、サービスサーバ30に対して、後述するXMPPトンネリング時に提供するダイレクトアクセス用URI(Uniform Resource Identifier)のインタフェース[IF-10]も有する。
サービスサーバ30は、携帯電話10からアクセスされるインタフェース[IF-01]とダイレクトアクセス管理サーバ40からアクセスされるインタフェース[IF-05]を有する。
なお、このシステム構成例では、サービスサーバ30はダイレクトアクセス管理サーバ40のXMPPサーバ43と直接インタフェースしていないが、もちろん直接インタフェースするように構成してもよい。
DVR20は、ダイレクトアクセス管理サーバ40からアクセスされるXMPPセッション確立後のインタフェース[IF-07]と、携帯電話10との間で例えば赤外線やUSB(Universal Serial Bus)などでデータを送受信するためのインタフェース[IF-03]と、サービスサーバ30もしくは携帯電話10からアクセスされるダイレクトアクセス用URIに対応したインタフェース[IF-09]とを有している。
ルータ50は、DVR20からアクセスされる、UPnP(Universal Plug and Play)IGD(Internet Gateway Device)機能のインタフェース[IF-08]を有する。
次に、この実施形態のネットワークシステムの動作を説明する。以下の説明において<X-XX>は要求、<X-XXR>は<X-XX>に対する応答を示す。
[1.制御機器・サービス、被制御機器の登録]
最初に、携帯電話10(制御機器)とサービスとの組み合わせ毎に発行される制御機器・サービス管理IDと、ダイレクトアクセス管理サーバ40内で個々のDVR20(被制御機器)に対してユニークに発行される被制御機器管理IDとの紐付けを行う動作を説明する。
図2は携帯電話10とサービスとの組み合わせの登録とDVR20の登録を行う際の情報の流れを示すシーケンス図である。図3はこの登録時の携帯電話10のフローチャートである。図4はこの登録時のサービスサーバ30のフローチャートである。図5は登録時のダイレクトアクセス管理サーバ40のフローチャートである。図6はこの登録時のDVR20のフローチャートである。
[1-1.制御機器とサービスとの組み合わせの登録]
まず、携帯電話10は、ユーザからの被制御機器登録の指示を受け(図3:ステップS301)、ユーザ識別情報を含む被制御機器登録要求<R-1>をサービスサーバ30に発行する(図3:ステップS302)。
サービスサーバ30は、ユーザ識別情報を含む被制御機器登録要求<R-1>を受信すると(図4:ステップS401)、そのユーザ識別情報に対応する制御機器・サービス管理IDが記憶部31に記憶されているかどうかを判断する(図4:ステップS402)。
ユーザ識別情報に対応する制御機器・サービス管理IDが記憶されていない場合、サービスサーバ30は、ユーザ識別情報を記憶部31に保存し(図4:ステップS403)、あらかじめ自身に割り当てられているServiceIDを含む制御機器・サービス管理ID取得要求<R-2>をダイレクトアクセス管理サーバ40内のSOAPサーバ42に対して発行する(図4:ステップS404)。制御機器・サービス管理IDは、サービス事業者が提供する個々のサービスと制御機器との組み合わせに対してユニークに割り当てられるIDである。
SOAPサーバ42は、制御機器・サービス管理ID取得要求<R-2>を受信すると(図5:ステップS501)、これに含まれているServiceIDが、ダイレクトアクセス管理サーバ40の記憶部41にあらかじめ登録されているServiceIDと一致するかどうかを調べ(図5:ステップS502)、一致しない場合には、サービスサーバ30にServiceIDが未登録であることを示すエラーコードを制御機器・サービス管理ID取得応答<R-2R>として送信する(図5:ステップS506)。ServiceIDが一致する場合には、SOAPサーバ42は、新規の制御機器・サービス管理IDを発行して(図5:ステップS503)、この制御機器・サービス管理IDとServiceIDとの対応関係を記憶部41に登録し(図5:ステップS504)、その制御機器・サービス管理IDをサービスサーバ30に制御機器・サービス管理ID取得応答<R-2R>として送信する(図5:ステップS505)。これにより、ダイレクトアクセス管理サーバ40は、ダイレクトアクセス管理サーバ40からみて制御側を、制御機器である携帯電話10と、携帯電話10が利用するサービスサーバ30のサービスとを組み合わせで識別することができるようになる。
サービスサーバ30は、制御機器・サービス管理ID取得応答<R-2R>として制御機器・サービス管理IDを受信すると(図4:ステップS405)、この制御機器・サービス管理IDをユーザ識別情報と対応付けて記憶部31に登録する(図4:ステップS406)。制御機器・サービス管理IDをユーザ識別情報と対応付けて記憶することにより、サービスサーバ30は、以降、携帯電話10からアクセスされた際に、携帯電話10のユーザ識別情報に対応する制御機器・サービス管理IDを用いて、ダイレクトアクセス管理サーバ40に処理を要求することにより、制御機器である携帯電話10とサービスサーバ30のサービスとの組み合わせの制御側として、ダイレクトアクセス管理サーバ40に制御要求元を一意に識別させることが可能となる。
サービスサーバ30は、制御機器・サービス管理IDをユーザ識別情報と対応付けて記憶部31に登録した後、または、携帯電話10から受信した被制御機器登録要求<R-1>に含まれるユーザ識別情報に対応する制御機器・サービス管理IDが記憶部31に登録されている場合、それら制御機器・サービス管理IDおよびServiceIDを含む被制御機器登録用パスワード取得要求<R-3>をダイレクトアクセス管理サーバ40内のSOAPサーバ42に対して発行する(図4:ステップS407)。
ダイレクトアクセス管理サーバ40内のSOAPサーバ42は、被制御機器登録用パスワード取得要求<R-3>を受信すると(図5:ステップS507)、これに含まれている制御機器・サービス管理IDおよびServiceIDの組み合わせが記憶部41に登録されているかどうかを判断する(図5:ステップS508)。登録されていない場合、SOAPサーバ42は、サービスサーバ30に制御機器・サービス管理IDとServiceIDの組み合わせが未登録であることを示すエラーコードを被制御機器登録用パスワード取得応答<R-3R>として送信する(図5:ステップS512)。また、被制御機器登録用パスワード取得要求<R-3>に含まれている制御機器・サービス管理IDおよびServiceIDの組み合わせが記憶部41に既に登録されている場合、SOAPサーバ42は、被制御機器登録用パスワードを新たに生成し(図5:ステップS509)、この被制御機器登録用パスワードとこの被制御機器登録用パスワードに対して決められた有効期限に関する情報を被制御機器登録用パスワード取得要求<R-3>に含まれていた制御機器・サービス管理IDおよびServiceIDと対応付けて記憶部41に登録する(図5:ステップS510)。この後、SOAPサーバ42は、被制御機器登録用パスワードと、この被制御機器登録用パスワードの有効期限の情報を被制御機器登録用パスワード取得応答<R-3R>としてサービスサーバ30に送信する(図5:ステップS511)。
サービスサーバ30は、被制御機器登録用パスワード取得応答<R-3R>を受信すると(図4:ステップS408)、この被制御機器登録用パスワード取得応答<R-3R>に含まれている被制御機器登録用パスワードとその有効期限の情報を被制御機器登録応答<R-4>として携帯電話10に送信する(図4:ステップS409)。
携帯電話10は、この被制御機器登録応答<R-4>を受信すると(図3:ステップS303)、これに含まれている被制御機器登録用パスワードとその有効期限の情報を記憶部11に保存する(図3:ステップS304)。
以上により、携帯電話10とサービスとの組み合わせに対する制御機器・サービス管理IDの登録処理と被制御機器を制御機器に関連付けるために用いられる被制御機器登録用パスワードの発行処理が完了となる。
[1-2.被制御機器の登録]
次に被制御機器であるDVR20の登録時の動作を説明する。
携帯電話10において、ユーザからのワンタイムパスワード送信要求が入力される(図3:ステップS305)。携帯電話10は、このユーザからのワンタイムパスワード送信要求を受けると記憶部11に記憶されている被制御機器登録用パスワードを、例えば、赤外線やUSBなどのインタフェース[IF-03]を使って、被制御機器であるDVR20にワンタイムパスワード<R-5>として渡す(図3:ステップS306)。被制御機器登録用パスワードの渡し方は、他にも、非接触ICカードを介した受け渡し、Bluetooth(商標)、無線LANなどによる無線伝送など様々な方式が想定されるが、制御機器である携帯電話10から被制御機器であるDVR20に対して被制御機器登録用パスワードを渡すことができさえすればどのような渡し方であっても構わない。この後、携帯電話10は記憶部11から被制御機器登録用パスワードを消去する(図3:ステップS307)。
一方、DVR20は、電源が投入されると自動接続フラグのチェックを行う(図6:ステップS627)。自動接続フラグとは、DVR20がダイレクトアクセス管理サーバ40に被制御機器として登録され、かつ、その被制御機器に対して制御機器とサービスとの組み合わせが紐付けられている状態においてオンにセットされ、その他の状態においてはオフにセットされるフラグである。
いま自動接続フラグはオフである。この場合、DVR20は、携帯電話10から被制御機器登録用パスワード<R-5>を受信するまでは何の処理も実行せず、携帯電話10から被制御機器登録用パスワード<R-5>を受信すると(図6:ステップS601)、自身に予め設定されている認証方式の情報および機器認証情報を含む機器認証要求<R-0>をダイレクトアクセス管理サーバ40内のSOAPサーバ42に送信する(図6:ステップS602)。
ダイレクトアクセス管理サーバ40内のSOAPサーバ42は、DVR20からの機器認証要求<R-0>を受信すると(図5:ステップS513)、このDVR20が正当な機器であるかどうかを、機器認証要求<R-0>に含まれる認証方式の情報および機器認証情報に基づき判定する(図5:ステップS514)。不当な機器として判定された場合、すなわち、認証方式があらかじめ決められている認証方式と異なる場合や機器認証情報があらかじめ決められている認証方式の形式と異なる場合等には、SOAPサーバ42は、機器認証に失敗したことを示すエラーコードを機器認証応答<R-0R>としてDVR20に送信する(図5:ステップS515)。正当な機器であることが判定された場合、すなわち、認証方式があらかじめ決められている認証方式と一致し、かつ機器認証情報があらかじめ決められている認証方式の形式である場合には、SOAPサーバ42は、そのDVR20に対して割り当てる機器認証継続IDを生成して(図5:ステップS516)、この機器認証継続IDと、機器認証要求<R-0>に含まれる機器認証情報とを対応付けて記憶部41に保存する(図5:ステップS517)。この後、SOAPサーバ42は、上記の生成した機器認証継続IDとその有効期限の情報を含む機器認証応答<R-0R>をDVR20へ送信する(図5:ステップS518)。機器認証継続IDは、ダイレクトアクセス管理サーバ40で機器認証が完了している機器に対して割り当てられる識別情報であり、この識別情報によって、ダイレクトアクセス管理サーバ40は、被制御機器であるDVR20の機器の認証状況を確認することが可能となる。
DVR20は、ダイレクトアクセス管理サーバ40内のSOAPサーバ42から、機器認証継続IDとその有効期限の情報とを含む機器認証応答<R-0R>を受信すると(図6:ステップS603)、この機器認証応答<R-0R>に含まれる機器認証継続ID、その有効期限の情報を機器認証情報と対応付けて記憶部21に保存する(図6:ステップS604)。
ここまでにおいて、被制御機器であるDVR20には機器認証継続ID、機器認証継続IDの有効期限の情報、機器認証情報の組み合わせが記憶部21に記憶され、ダイレクトアクセス管理サーバ40には機器認証継続IDと機器認証情報との組み合わせが記憶部41に記憶され、被制御機器であるDVR20のダイレクトアクセス管理サーバ40への登録が完了したことになる。
[1-3.制御機器・サービス管理IDと被制御機器管理IDとの紐付け]
次に、制御機器・サービス管理IDと被制御機器管理IDとを関連付けてダイレクトアクセス管理サーバ40に登録するために、DVR20は、記憶部21に記憶されている機器認証継続IDと、携帯電話10より受信した被制御機器登録用パスワードを含む被制御機器登録要求<R-6>をダイレクトアクセス管理サーバ40内のSOAPサーバ42に送信する(図6:ステップS605)。これによりDVR20は、ダイレクトアクセス管理サーバ40に、被制御機器登録用パスワードを送信してきた携帯電話10と関連付けて登録することを要求する。
ダイレクトアクセス管理サーバ40内のSOAPサーバ42は、DVR20から被制御機器登録要求<R-6>を受信すると(図5:ステップS519)、DVR20から受信した被制御機器登録要求<R-6>に含まれる被制御機器登録用パスワードが記憶部41に保存されているものと一致するかどうかのチェックとその被制御機器登録用パスワードの有効期限のチェックを行う(図5:ステップS520)。これらのチェックでNGが判定された場合、すなわち被制御機器登録用パスワードが一致しないか、もしくは被制御機器登録用パスワードの有効期限が切れている場合、SOAPサーバ42は、被制御機器登録要求<R-6>に含まれる被制御機器登録用パスワードが無効であることを示すエラーコードを被制御機器登録応答<R-6>としてDVR20へ送信する(図5:ステップS527)。DVR20は、このエラーコードを被制御機器登録応答<R-6R>として受信すると(図6:ステップS606)、DVR20に接続されたTVの画面等を通して、被制御機器登録用パスワードの再取得を行うように、ユーザに対してエラーメッセージの表示を行って(図6:ステップS607)、処理を終了する。
また、SOAPサーバ42は、ステップS520のチェック結果がOKの場合、すなわち被制御機器登録用パスワードが記憶部41に記憶されているものと一致し、かつ被制御機器登録用パスワードの有効期限が切れていない場合には、記憶部41に記憶されている情報を参照して、被制御機器登録要求<R-6>に含まれている機器認証継続IDに被制御機器管理IDが割り当てられているかどうかの判断を行う(図5:ステップS521)。機器認証継続IDに対応する被制御機器管理IDがまだ割り当てられていない場合、SOAPサーバ42は、そのDVR20に対して被制御機器管理IDを割り当て(図5:ステップS522)、この割り当てた被制御機器管理IDを、そのDVR20の機器認証情報および機器認証継続IDと対応付けて記憶部41に保存する(図5:ステップS523)。被制御機器登録要求<R-6>に含まれている機器認証継続IDに被制御機器管理IDがすでに割り当てられている場合には、SOAPサーバ42は被制御機器管理IDを、記憶部41に該被制御機器登録用パスワードと対応付けて保存されている制御機器・サービス管理IDと関連付けて記憶部41に保存する(図5:ステップS523-1)。ここで、被制御機器管理IDとは、被制御機器に対してダイレクトアクセス管理サーバ40内でユニークに割り当てられる識別情報である。これによって、制御機器とサービスとの組み合わせに対して割り当てられた制御機器・サービス管理IDと、被制御機器に対して割り当てられた被制御機器管理IDとの紐付けが行われる。この紐付けは、1つの制御機器・サービス管理IDに対して複数の被制御機器管理IDが紐付けされても、逆に複数の制御機器・サービス管理IDが1つの被制御機器管理IDに紐付けされても構わない。
次にSOAPサーバ42は、現在紐付けが完了しているサービスの数を被制御機器登録応答<R-6R>としてDVR20へ送信する(図5:ステップS524)。続いてSOAPサーバ42は、記憶部41に保存されているServiceID、制御機器・サービス管理ID、被制御機器登録用パスワードを含む被制御機器登録完了通知<R-7>をサービスサーバ30に送信する(図5:ステップS525)。この後、SOAPサーバ42は、記憶部41の被制御機器登録用パスワードを消去し(図5:ステップS526)、処理を終了する。また、サービスサーバ30は、SOAPサーバ42より被制御機器登録完了通知<R-7>を受信すると(図4:ステップS410)、被制御機器の登録が完了したことを携帯電話10に通知する(図4:ステップS411)。被制御機器の登録が完了したことをサービスサーバ30から携帯電話10に通知する方法としては、たとえば、電子メールや、携帯電話10との間でその他の方法で通信を行うために用意されたアプリケーション等がある。
DVR20は、SOAPサーバ42より現在紐付けが完了しているサービスの数を被制御機器登録応答<R-6R>として受信すると(図6:ステップS608)、自動接続フラグをオンにセットし(図6:ステップS609)、DVR20の出荷前に記憶部21にプログラム内のパラメータとして記録された初回接続時の待機上限時間T1、再接続時の待機上限時間T2の各初期値を読み出して登録情報として記憶部21に保存する。ここで、初回接続時の待機上限時間T1とは、DVR20の電源ON後の初回接続時、XMPPサーバ43との間での常時接続セッションを切断した後の初回接続時の待ち時間を決定するために用いられるパラメータである。再接続時の待機上限時間T2とはXMPPサーバ43との間での常時接続セッションを切断した後の再接続に失敗した後の待ち時間を決定するために用いられるパラメータである。
この後、DVR20は、被制御機器の登録が完了したことを表すメッセージを表示する(図6:ステップS610)。続いて、DVR20は、ダイレクトアクセス管理サーバ40のXMPPサーバ43との間で常時接続セッションを確立するために、機器認証継続IDを含むXMPPログイン情報取得要求<D-0-1>をダイレクトアクセス管理サーバ40内のSOAPサーバ42に送信する(図6:ステップS611)。
[2.被制御機器のXMPPログイン]
このネットワークシステムでは、ダイレクトアクセス管理サーバ40に、被制御機器との間で双方向の常時接続セッションを設定するためのXMPPサーバ43を置いている。制御機器である携帯電話10から被制御機器であるDVR20にネットワークを通じてアクセスするために、その前にDVR20がXMPPサーバ43にログインしてXMPPサーバ43との間で常時接続セッションを確立しておく。これにより、サービスサーバ30や携帯電話10は、必要なときには、DVR20から必要な情報を取得できる。また、この際のサービスサーバ30の設計を簡単にするために、XMPPプロトコルをダイレクトアクセス管理サーバ40内に隠蔽し、SOAPインタフェースだけで、DVR20と双方向の常時接続セッションを設定しているXMPPサーバ43との情報のやり取りを行えるようにしている。
図7の一部は被制御機器のXMPPログインに関する情報の流れを示すシーケンス図、図10の一部は被制御機器のXMPPログインに関するダイレクトアクセス管理サーバ40の動作を示すフローチャートである。
これらの図に示されるように、ダイレクトアクセス管理サーバ40は、DVR20より機器認証継続IDを含むXMPPログイン情報取得要求<D-0-1>を受信すると(図10:ステップS1001)、このXMPPログイン情報取得要求<D-0-1>に含まれている機器認証継続IDと機器認証継続IDの有効期限のチェックを行う(図10:ステップS1002)。このチェックでXMPPログイン情報取得要求<D-0-1>に含まれている機器認証継続IDが、ダイレクトアクセス管理サーバ40の記憶部41に記憶されているものと一致しない場合、もしくは、有効期限が切れている場合には、DVR20が正常にダイレクトアクセス管理サーバ40に登録されていないか、もしくは、過去に登録されていたが登録時の機器認証継続IDの有効期限が切れているのかであるため、機器認証が必要であることを示すエラーコードをXMPPログイン情報取得応答<D-0-1R>としてDVR20に送信する(図10:ステップS1003)。機器認証継続IDが記憶部41に記憶されており、かつ機器認証継続IDの有効期限が切れていない場合、ダイレクトアクセス管理サーバ40は、記憶部41から、当該機器認証継続IDに紐付けられている被制御機器管理ID及び機器認証情報を検索し(図10:ステップS1004)、これら被制御機器管理IDと機器認証情報から、DVR20がXMPPサーバ43にログインするために必要なXMPPログインIDであるFull JID(D)、XMPPログインパスワードおよびXMPPログインパスワードの有効期限の情報を生成し(図10:ステップS1005)、これらを記憶部41に保存する(図10:ステップS1006)。そして、ダイレクトアクセス管理サーバ40は、生成したFull JID(D)、XMPPログインパスワードおよびその有効期限の情報に、XMPPアドレスおよびポート番号、認証方式の情報、SSL(Secure Socket Layer)オプション、初回接続時の待機上限時間T1、再接続時の待機上限時間T2を加えた情報をXMPPログイン情報取得応答<D-0-1R>としてDVR20に送信する(図10:ステップS1007)。ここで、ダイレクトアクセス管理サーバ40からDVR20に送信される初回接続時の待機上限時間T1、再接続時の待機上限時間T2は、ダイレクトアクセス管理サーバ40において現在の常時接続セッションが接続されている被制御機器の台数の変動や、並列して処理を行うサーバ機器の台数などの処理能力の変更など、各種の事情に応じて動的に可変される値である。
DVR20は、ダイレクトアクセス管理サーバ40内のSOAPサーバ42からFull JID(D)、XMPPログインパスワード、初回接続時の待機上限時間T1、再接続時の待機上限時間T2等を含むXMPPログイン情報取得応答<D-0-1R>を受信すると(図6:ステップS612)、このXMPPログイン情報取得応答<D-0-1R>に含まれる初回接続時の待機上限時間T1、再接続時の待機上限時間T2を記憶部21に保存する(図6:ステップS613)。すなわち、ステップS609で、DVR20の出荷前に記憶部21にプログラム内のパラメータとして記録された初回接続時の待機上限時間T1、再接続時の待機上限時間T2の各初期値を読み出して記憶部21に保存した登録情報に対して、XMPPログイン情報取得応答<D-0-1R>にて取得した初回接続時の待機上限時間T1、再接続時の待機上限時間T2による更新が行われる。
次に、DVR20は、Full JID(D)、XMPPログインパスワードを含むXMPPログイン認証要求<D-0-2>を、ダイレクトアクセス管理サーバ40内のXMPPサーバ43に送信する(図6:ステップS614)。
ダイレクトアクセス管理サーバ40内のXMPPサーバ43は、DVR20よりXMPPログイン認証要求<D-0-2>を受信すると(図10:ステップS1008)、このXMPPログイン認証要求<D-0-2>に含まれているFull JID(D)、XMPPログインパスワードおよびXMPPログインパスワードの有効期限のチェックを行い(図10:ステップS1009)、Full JID(D)が記憶部41に記憶されているものと一致しない、または、XMPPログインパスワードが記憶部41に記憶されているものと一致しない、または、XMPPログインパスワードの有効期限が切れている場合には、XMPPログイン失敗を示すエラーコードをXMPPログイン認証応答<D-0-2R>としてDVR20に送信する(図10:ステップS1010)。また、Full JID(D)、XMPPログインパスワードおよび有効期限のチェックがすべてOKならば、ダイレクトアクセス管理サーバ40内のXMPPサーバ43は、XMPPログイン許可を示すコードをXMPPログイン認証応答<D-0-2R>としてDVR20に送信する(図10:ステップS1011)。
このように、このネットワークシステムでは、ダイレクトアクセス管理サーバ40にて、DVR20がXMPPサーバ43にログインするために必要なXMPPログインID(Full JID(D))及びXMPPログインパスワードをそれぞれ生成し、DVR20へ配布している。このFull JID(D)は、たとえば図24に示すように、Bare JID部とResource部とで構成される。Bare JID部には被制御機器に割り当てられた被制御機器管理IDが用いられ、Resource部には機器認証情報から得た製品コード及びシリアルナンバーが用いられている。また、図25に示すように、Resource部には制御機器とサービスの組み合わせを識別するための制御機器・サービス管理IDを用いてもよい。
DVR20は、ダイレクトアクセス管理サーバ40内のXMPPサーバ43よりXMPPログイン許可を示すコードをXMPPログイン認証応答<D-0-2R>として受信した場合には(図6:ステップS615)、記録されている後述の接続エラーの回数、および記憶部21に記憶している待機時間tr1と時間tr2をリセットした後(図6:ステップS616)、XMPPログイン処理が完了する。
また、DVR20は、XMPPログイン情報取得要求<D-0-1>をダイレクトアクセス管理サーバ40内のXMPPサーバ43に送信した後、一定時間内に何も応答が返ってこないために接続エラーが判定された場合(図6:ステップS621)、または、XMPPログイン認証要求<D-0-2>をダイレクトアクセス管理サーバ40内のSOAPサーバ42に送信した後、その応答としてXMPPログイン失敗を示すエラーコードをXMPPログイン認証応答<D-0-2R>として受信した場合や一定時間内に何も応答が返ってこないために接続エラーが判定された場合(図6:ステップS625)、記録しておいた過去の接続エラーの回数を調べる(図6:ステップS622)。
最初(1回目)の接続エラーの場合には、DVR20は、記憶部21に記憶されている再接続時の待機上限時間T2をもとに時間tr2を計算し、記憶部21に記憶する(図6:ステップS623)。時間tr2は、たとえば再接続の待機上限時間T2を上限とする一様乱数時間とする。次に、DVR20は、記憶部21に記憶された初回接続時の待機上限時間T1、待機時間tr1、および時間tr2をもとにT1-tr1+tr2の時間を計算してこの時間だけ待機してから(図6:ステップS624)、ステップS611のXMPPログイン情報取得要求<D-0-1>の送信から処理をやりなおすとともに、接続エラーの回数を保存する。ここで、待機時間tr1が記憶部21に記憶されていない場合は、例えばtr1の値をT1の値と同一とする。
ところで、ステップS609の初回接続時の待機上限時間T1、再接続時の待機上限時間T2の初期値の登録が完了してステップS612のXMPPログイン情報取得が行われていない場合は、ダイレクトアクセス管理サーバ40より初回接続時の待機上限時間T1、再接続時の待機上限時間T2を取得していない状態である。したがって、この場合には、DVR20は、出荷前に記憶部21に記録しておいた初回接続時の待機上限時間T1、再接続時の待機上限時間T2を用いて待機時間tr1、時間tr2の計算を行う。登録後に一度でもXMPPログイン情報の取得に成功しているのであれば、DVR20の記憶部21にダイレクトアクセス管理サーバ40より取得した初回接続時の待機上限時間T1、待機上限時間T2が記憶されているので、この場合にはDVR20は、ダイレクトアクセス管理サーバ40より取得した初回接続時の待機上限時間T1、待機上限時間T2を用いて待機時間tr1、時間tr2の計算を行う。
この後、DVR20は再び、ダイレクトアクセス管理サーバ40内のXMPPサーバ43より、接続の失敗を示すエラーコードをXMPPログイン情報取得応答<D-0-1R>として受信した場合 (図6:ステップS621)、または、XMPPログイン失敗を示すエラーコードをXMPPログイン認証応答<D-0-2R>として受信した場合には(図6:ステップS625)、ステップS622での接続エラー回数のチェックで二回目の接続エラーが発生したことが判定される。この場合には、DVR20は記憶部21に保存されている再接続時の待機上限時間T2のそのまま待機時間として採用して時間待ちを行い(図6:ステップS626)、待機時間T2が経過した後、ステップS611のXMPPログイン情報取得要求<D-0-1>の送信から処理をやりなおす。
以後、DVR20は、ステップS611からの流れと同様の処理を行い、ステップS615でダイレクトアクセス管理サーバ40内のXMPPサーバ43よりXMPPログイン許可を示すコードをXMPPログイン認証応答<D-0-2R>として受信するまで、すなわちXMPPログインに成功するまで、ダイレクトアクセス管理サーバ40内のSOAPサーバ42より、接続の失敗を示すエラーコードをXMPPログイン情報取得応答<D-0-1R>として受信するたびに、または、ダイレクトアクセス管理サーバ40内のXMPPサーバ43よりXMPPログイン失敗を示すエラーコードをXMPPログイン認証応答<D-0-2R>として受信するたびに、待機上限時間T2をそのまま待機時間とする時間待ちを経て、ステップS611の動作つまりXMPPログイン情報取得要求<D-0-1>の送信を繰り返す。
また、DVR20は、ダイレクトアクセス管理サーバ40のSOAPサーバ42にXMPPログイン情報取得要求<D-0-1>を送信した後、その応答として機器認証が必要であることを示すエラーコードをXMPPログイン情報取得応答<D-0-1R>として受信した場合には(図6:ステップS617)、自機が正常にダイレクトアクセス管理サーバ40に被制御機器として登録されていないか、もしくは、機器認証継続IDの有効期限が切れている可能性があるため、再度、自身に予め設定されている認証方式の情報および機器認証情報を含む機器認証要求<R-0>をダイレクトアクセス管理サーバ40内のSOAPサーバ42に送信して自身の機器認証をやりなおす(図6:ステップS630)。DVR20は、ダイレクトアクセス管理サーバ40内のSOAPサーバ42から、機器認証継続IDとその有効期限の情報とを含む機器認証応答<R-0R>を受信した場合には(図6:ステップS631)、この機器認証応答<R-0R>に含まれる機器認証継続ID、その有効期限の情報を機器認証情報と対応付けて記憶部21に保存し(図6:ステップS632)、この保存した機器認証継続IDを含むXMPPログイン情報取得要求<D-0-1>をダイレクトアクセス管理サーバ40内のSOAPサーバ42に再度送信する(図6:ステップS611)。以降、ステップS611からの流れと同様の処理が行われる。
また、DVR20は、機器認証要求<R-0>をダイレクトアクセス管理サーバ40内のSOAPサーバ42に送信した後、接続の失敗を示すエラーコードを機器認証応答<R-0R>として受信した場合(図6:ステップS633)、記録しておいた接続エラーの回数を調べる(図6:ステップS622)。
以降、同様に待機時間を計算し、その待機時間が経過した後、ステップS611のXMPPログイン情報取得要求<D-0-1>の送信から処理をやりなおす。
次に、DVR20に電源が投入された直後の自動接続フラグのチェックで、自動接続フラグがオンである場合の動作を説明する。
この場合、DVR20は、記憶部21に記憶された初回接続時の待機上限時間T1を上限とする一様乱数時間を計算してこれを待機時間tr1として記憶し(図6:ステップS628)、この待機時間tr1だけ待機してから(図6:ステップS629)、ステップS611のXMPPログイン情報取得要求<D-0-1>の送信からの流れと同様の処理を進める。
このように、DVR20は再接続時には携帯電話10からの被制御機器登録用パスワードの取得、被制御機器登録のための処理をスキップしてXMPPログインのための処理に入る。これにより、DVR20は再接続時にXMPPログインのための処理を行うだけで、XMPPサーバ43の間での接続セッションを確立することができる。
また、DVR20は、XMPPサーバ43との間での常時接続セッションが予期せず切断されるエラーが発生した場合には(図6:ステップS634)、電源がオンにされたときの自動接続フラグのチェックで自動接続フラグがオンにセットされている場合の動作を同様に行う。
図27はXMPPサーバ43との常時接続セッション中のDVR20の動作の一部を示すフローチャートである。
ダイレクトアクセス管理サーバ40は、たとえば、保守を行うときなど、XMPPサーバ43との常時接続セッションの強制切断を指示するメッセージと再接続待機時間T3を含むXMPPログインセッション強制切断指示<R-27>をDVR20に送信する。DVR20は、ダイレクトアクセス管理サーバ40より、そのXMPPログインセッション強制切断指示<R-27>を受信すると(図27:ステップS2701)、XMPPサーバ43との常時接続セッションを切断する処理を行い(図27:ステップS2702)、受信したXMPPログインセッション強制切断指示<R-27>に含まれる再接続待機時間T3の時間だけ待機して(図27:ステップS2703)、ステップS611のXMPPログイン情報取得要求<D-0-1>の送信から処理をやりなおす。ここで、再接続待機時間T3は、ダイレクトアクセス管理サーバ40において常時接続セッションが接続されている被制御機器の台数、稼動中のサーバ台数、処理性能の変更など、各種の事情に応じて動的に可変される値である。
ところで、DVR20に送信する初回接続時の待機上限時間T1、再接続時の待機上限時間T2は、ダイレクトアクセス管理サーバ40の負荷に応じて動的に変更することによって、ダイレクトアクセス管理サーバ40の負荷の時間的な分散をより最適に行えるようになる。そこでダイレクトアクセス管理サーバ40は、常時接続セッションが接続されている被制御機器の台数の変動や、並列して処理を行うサーバ機器の台数などの処理能力の変更など、各種の事情に応じて、DVR20に送信する初回接続時の待機上限時間T1、再接続時の待機上限時間T2を最適な値に更新し、この更新した初回接続時の待機上限時間T1、再接続時の待機上限時間T2を含む接続待機時間通知<R-29>をDVR20に送信する。DVR20は、この接続待機時間通知<R-29>を受信すると(図27:ステップS2703)、この接続待機時間通知<R-29>に含まれる初回接続時の待機上限時間T1、再接続時の待機上限時間T2を、記憶部21に保存する(図27:ステップS2704)。このとき既に初回接続時の待機上限時間T1、再接続時の待機上限時間T2の情報が記憶部21に保存されていた場合には、その既存の情報を新しく入手した初回接続時の待機上限時間T1、再接続時の待機上限時間T2の情報で書き換える。
次に、初回接続時の待機上限時間T1、再接続時の待機上限時間T2を用いてDVR20がダイレクトアクセス管理サーバ40に対してXMPPサーバ43との常時接続セッションを確立するときの動作の例として、DVR20がXMPPサーバ43との常時接続セッションを接続中に電源をオフにし再び電源をオンにした場合(再接続時)の動作、ダイレクトアクセス管理サーバ40側での何らの事情によりDVR20とXMPPサーバ43との間での常時接続セッションが切断された場合の動作をそれぞれ説明する。
まず、DVR20がXMPPサーバ43との常時接続セッションを接続中に電源をオフにし、再び電源をオンにした場合の再接続の動作を図28を参照して説明する。
DVR20は、ダイレクトアクセス管理サーバ40への機器登録が完了した後、XMPPログイン情報取得要求<D-0-1>をダイレクトアクセス管理サーバ40へ送信し、ダイレクトアクセス管理サーバ40より、XMPPログインに必要な情報と初回接続時の待機上限時間T1、再接続時の待機上限時間T2等を含むXMPPログイン情報取得応答<D-0-1R>を受信したなら、この
XMPPログイン情報取得応答<D-0-1R>に含まれる、XMPPログインに必要な情報と初回接続時の待機上限時間T1、再接続時の待機上限時間T2を記憶部21に保存する。この後、DVR20は、記憶部21に保存されたXMPPログインに必要な情報を用いてダイレクトアクセス管理サーバ40のXMPPサーバ43との間で常時接続セッションを確立する。DVR20の電源がオフになってXMPPサーバ43との間で常時接続セッションが切断された後、DVR20の電源がオンになると、自動接続フラグのチェックの後、記憶部21に記憶された初回接続時の待機上限時間T1をもとに待機時間tr1を計算し、この待機時間tr1だけ待機してから、XMPPログイン情報取得要求<D-0-1>の送信から処理をやりなおし、ダイレクトアクセス管理サーバ40のXMPPサーバ43との間で常時接続セッションを再度確立する。
ここで、初回接続時の待機上限時間T1は、ユーザの利便性を考慮すると比較的短い時間たとえば60秒程度とする。DVR20は、この待機上限時間T1を上限とする一様乱数時間が待機時間tr1として用いて時間待ちを行う。したがって、ダイレクトアクセス管理サーバ40から見て0〜T1の時間間隔で負荷の分散が行われることとなる。
上記のようにDVR20の電源のオン・オフの場合は、概ね一回のXMPPログイン情報取得要求<D-0-1>の送信でXMPPサーバ43との間での常時接続セッションが再確立されるが、ダイレクトアクセス管理サーバ40側での何らの事情で、XMPPサーバ43との間での常時接続セッションが切断された場合には、DVR20からXMPPログイン情報取得要求<D-0-1>を送信することを繰り返しても接続エラーが続くことがある。
図29は、このように接続エラーが繰り返される場合においてのDVR20とダイレクトアクセス管理サーバ40との間でのやりとりの一例を示す図である。
この場合には、DVR20は、はじめに初回接続時の待機上限時間T1の一様乱数時間である待機時間tr1だけ待機してからXMPPログイン情報取得要求<D-0-1>をダイレクトアクセス管理サーバ40に送信し、接続エラーが発生した場合には、次に再接続時の待機上限時間T2の一様乱数時間である時間tr2を計算し、この時間tr2と初回接続時の待機上限時間T1および待機時間tr1からT1-tr1+tr2の時間を計算し、このT1-tr1+tr2の時間だけ待機してからXMPPログイン情報取得要求<D-0-1>を送信するようにする。ここで、再接続時の待機上限時間T2は、たとえば、600秒程度など、初回接続時の待機上限時間T1よりも長い時間が用いられている。初回接続時の待機上限時間T1はユーザの利便性を考慮して決められた時間であるのに対し、再接続時の待機上限時間T2は、ダイレクトアクセス管理サーバ40の負担を時間分散させることを考慮して決められた時間である。すなわち、ダイレクトアクセス管理サーバ40やネットワークの側の問題に依存して発生する接続エラーは、複数の被制御機器において同時に発生し、結果的に複数の被制御機器からほぼ同じタイミングでXMPPログイン情報取得要求<D-0-1>がダイレクトアクセス管理サーバ40へ向けて送信されることになり得る。本実施形態によれば、このようなダイレクトアクセス管理サーバ40への負荷の時間集中を回避することができる。
また、DVR20は、二回目の接続エラーの発生以後、再接続時の待機上限時間T2をそのまま待機時間として用いて待機し、XMPPログイン情報取得要求<D-0-1>の送信をXMPPサーバ43との間での常時接続セッションが確立するまで繰り返す。すなわち、これは一度T1-tr1+tr2の時間だけ待機すれば、以後は同じ時間間隔でXMPPログイン情報取得要求<D-0-1>をダイレクトアクセス管理サーバ40に送信しても、ダイレクトアクセス管理サーバ40に負荷が時間集中することはないからである。
図30は待機時間とダイレクトアクセス管理サーバ40の負荷分散区間との関係を示す図である。このように初回接続時の待機上限時間T1は、ユーザの利便性を考慮して比較的短い時間が用いられ、この待機上限時間T1を上限とする一様乱数時間が、初回のXMPPログイン情報取得要求<D-0-1>を送信する際の実際の待機時間tr1となる。再接続時の待機上限時間T2は、ダイレクトアクセス管理サーバ40の負担を時間分散させることを考慮して決められた時間であるため、初回接続時の待機上限時間T1に比べ十分に長い時間とすることが望ましい。T1-tr1+tr2が二回目のXMPPログイン情報取得要求<D-0-1>を送信する際の実際の待機時間となる。ここで、tr2は再接続時の待機上限時間T2上限とする一様乱数時間である。三回目以降のXMPPログイン情報取得要求<D-0-1>の送信は再接続時の待機上限時間T2の間隔で行われることとなる。二回目のXMPPログイン情報取得要求<D-0-1>を送信する待機時間をT1-tr1+tr2とするのは、二回目のXMPPログイン情報取得要求<D-0-1>を送信するタイミングが最初のT2区間内で発生することを保証するためであり、もし二回目のXMPPログイン情報取得要求<D-0-1>を送信するタイミングがT1区間内にも発生することを許容した場合、T1区間内に初回のXMPPログイン情報取得要求<D-0-1>と二回目のXMPPログイン情報取得要求<D-0-1>とが混在することになり、T1区間での負荷が増大する危険がある。
また、ダイレクトアクセス管理サーバ40は、常時接続セッションが接続されている被制御機器の台数の変動や、並列して処理を行うサーバ機器の台数などの処理能力の変更など、各種の事情に応じてサーバ機器の台数、初回接続時の待機上限時間T1および再接続時の待機上限時間T2を動的に更新し、新たにセッションが接続されたDVR20に対して送信する。これにより、負荷分散のために常に最適な初回接続時の待機上限時間T1および再接続時の待機上限時間T2をDVR20に与えることができ、ダイレクトアクセス管理サーバ40の可用性を向上させることができる。
次に、関連付けられた制御機器である携帯電話10と被制御機器であるDVR20との間で、携帯電話10がDVR20を制御する際の具体的な処理に関して説明する。
[3.リモート録画予約]
DVR20へのリモート録画予約の動作を説明する。
図7の一部はリモート録画予約時の情報の流れを示すシーケンス図、図8はリモート録画予約に関する携帯電話10の動作を示すフローチャート、図9はリモート録画予約に関するサービスサーバ30の動作を示すフローチャート、図10と図11はリモート録画予約およびコンテンツ取得に関するダイレクトアクセス管理サーバ40の動作を示すフローチャート、図12はリモート録画予約およびコンテンツ取得に関するDVR20の動作を示すフローチャートである。
携帯電話10のユーザから、リモート録画予約サービスを受信するために、ダイレクトアクセス利用開始の指示が携帯電話10に与えられると(図8:ステップS801)、携帯電話10は自身に予め設定されているユーザ識別情報を含む被制御機器リスト取得要求<D-1>をサービスサーバ30に送信する(図8:ステップS802)。
サービスサーバ30は、携帯電話10より被制御機器リスト取得要求<D-1>を受信すると(図9:ステップS901)、この被制御機器リスト取得要求<D-1>に含まれるユーザ識別情報に対応する制御機器・サービス管理IDが記憶部31に記憶されているかどうかを判定する(図9:ステップS902)。ユーザ識別情報に対応する制御機器・サービス管理IDが記憶部31に記憶されていない場合、サービスサーバ30は、被制御機器の登録が必要であることを示すエラーコードを被制御機器リスト取得応答<D-3>として携帯電話10に送信する(図9:ステップS903)。ユーザ識別情報に対応する制御機器・サービス管理IDが記憶部31に記憶されている場合は、ダイレクトアクセス管理サーバ40に管理されている制御機器・サービス管理IDに関連付けられている被制御機器の一覧を取得するために、サービスサーバ30は、サービスを識別する情報であるServiceIDおよび制御機器・サービス管理IDを含む被制御機器リスト取得要求<D-2>をダイレクトアクセス管理サーバ40に送信する(図9:ステップS904)。
ダイレクトアクセス管理サーバ40は、サービスサーバ30からの被制御機器リスト取得要求<D-2>を受信すると(図10:ステップS1012)、この被制御機器リスト取得要求<D-2>に含まれるServiceIDおよび制御機器・サービス管理IDの組み合わせが記憶部41に記憶されているかどうかを判定し(図10:ステップS1013)、もし記憶されていない場合には、未登録であることを示すエラーコードを被制御機器リスト取得応答<D-2R>としてサービスサーバ30に送信する(図10:ステップS1014)。サービスサーバ30は、ダイレクトアクセス管理サーバ40から未登録であることを示すエラーコードを被制御機器リスト取得応答<D-2R>として受信した場合は(図9:ステップS905)、被制御機器の登録が必要であることを示すエラーコードを被制御機器リスト取得応答<D-3>として携帯電話10に送信する(図9:ステップS906)。携帯電話10は、サービスサーバ30よりエラーコードを被制御機器リスト取得応答<D-3>として受信する場合(図8:ステップS803)、サービス対象の被制御機器の登録が必要であることを示すエラーメッセージを、表示部を通じてユーザに表示する(図8:ステップS804)。
また、ステップS1013の判定で、被制御機器リスト取得要求<D-2>に含まれるServiceIDおよび制御機器・サービス管理IDの組み合わせが記憶部41に記憶されていることが判定された場合、ダイレクトアクセス管理サーバ40は、記憶部41に記憶されている制御機器・サービス管理IDと被制御機器管理IDとの紐付け内容に従って、携帯電話10から制御可能な被制御機器の被制御機器管理IDに対して改めて振り直した番号と被制御機器の機器認証情報に含まれる機器名称等からなる一覧を被制御機器リストとして生成し、この被制御機器リストを制御機器・サービス管理IDと対応付けて記憶部41に保存するとともに、この被制御機器リストを含む被制御機器リスト取得応答<D-2R>をサービスサーバ30に送信する(図10:ステップS1015)。サービスサーバ30が、ダイレクトアクセス管理サーバ40から被制御機器リストを含む被制御機器リスト取得応答<D-2R>を受信した場合は(図9:ステップS907)、この被制御機器リストを含む被制御機器リスト取得応答<D-3>を携帯電話10に送信する(図9:ステップS908)。
携帯電話10は、被制御機器リストを含む被制御機器リスト取得応答<D-3>を受信した場合は(図8:ステップS805)、その被制御機器リストに複数の被制御機器の番号が存在するかどうかを判定する(図8:ステップS806)。複数の被制御機器の番号が存在する場合には、携帯電話10は、その被制御機器リストの内容を表示部に表示して(図8:ステップS807)、ユーザにその中から1つの被制御機器の番号を選択させ(図8:ステップS808)、その選択された被制御機器の番号を記憶部11に保存する(図8:ステップS809,S811)。複数の被制御機器が存在しない場合には、その一つの被制御機器の番号を記憶部11に保存する(図8:ステップS810,S811)。
次に、携帯電話10は、これから利用するサービス(リモート録画予約)が携帯電話10から被制御機器に対してダイレクトアクセス可能なサービスか否かによって処理を分岐する(図8:ステップS812)。携帯電話10からダイレクトアクセス可能なサービスを利用する場合は、携帯電話10は、記憶部11に記憶されているユーザ識別情報、被制御機器の番号、携帯ダイレクトフラグ(オン)を含む新規リモート録画予約要求<D-4>をサービスサーバ30に送信する(図8:ステップS813)。ここで、携帯ダイレクトフラグの値は、携帯電話10からダイレクトアクセス可能なサービスを利用する場合にはオンにセットされ、携帯電話10からダイレクトアクセスが不可なサービスを利用する場合にはオフにセットされる。したがって、携帯電話10からダイレクトアクセス不可なサービスを利用する場合は、携帯電話10は、ユーザ識別情報、録画予約番組情報、被制御機器の番号、携帯ダイレクトフラグ(オフ)を含む新規リモート録画予約要求<D-4>をサービスサーバ30に送信する(図8:ステップS814)。録画予約番組情報は、たとえば、録画開始時間、番組長、放送種別、チャンネル、強制予約フラグなどの情報で構成される。
サービスサーバ30は、携帯電話10から新規リモート録画予約要求<D-4>を受信すると(図9:ステップS909)、利用可能なXMPPセッションID、すなわち新規リモート録画予約要求<D-4>に含まれる携帯電話10のユーザ識別情報に関連付けられてXMPPサーバ43との間で確立されている接続セッションを識別するIDが記憶部31に記憶されているか否かを調べる(図9:ステップS910)。利用可能なXMPPセッションIDが記憶されていない場合には、サービスサーバ30は、XMPPサーバ43とXMPPセッションを確立するために、ServiceID、制御機器・サービス管理ID、被制御機器の番号を含むXMPPログイン要求<D-5>をダイレクトアクセス管理サーバ40に送信する(図9:ステップS912)。
ダイレクトアクセス管理サーバ40は、サービスサーバ30からのXMPPログイン要求<D-5>を受信すると(図10:ステップS1016)、このXMPPログイン要求<D-5>に含まれるServiceID、制御機器・サービス管理ID、および被制御機器の番号の組み合わせが記憶部41に記憶されているかどうかを判定する(図10:ステップS1017)。記憶されていない場合、ダイレクトアクセス管理サーバ40は、対応するサービス対象の被制御機器が存在しないことを示すエラーコードをXMPPログイン応答<D-5R>としてサービスサーバ30に送信する(図10:ステップS1018)。この後、ダイレクトアクセス管理サーバ40の動作は終了となる。対応するサービス対象の被制御機器が記憶部41に記憶されている場合、ダイレクトアクセス管理サーバ40は、XMPPセッションIDを生成し、このXMPPセッションIDをServiceID、制御機器・サービス管理ID、被制御機器の番号と対応付けて記憶部41に保存し(図10:ステップS1019)、このXMPPセッションIDを含むXMPPログイン応答<D-5R>をサービスサーバ30に送信する(図10:ステップS1020)。
サービスサーバ30は、ダイレクトアクセス管理サーバ40からXMPPセッションIDを含むXMPPログイン応答<D-5R>を受信すると(図9:ステップS913)、このXMPPログイン応答<D-5R>に含まれるXMPPセッションIDおよび、ステップS909の新規リモート録画予約要求<D-4>に含まれる携帯ダイレクトフラグの値をServiceID、制御機器・サービス管理ID、被制御機器リスト番号と対応付けて記憶部31に保存する(図9:ステップS914)。
一方、サービスサーバ30によるステップS910の判定の結果、利用可能なXMPPセッションIDが既に記憶部31に記憶されていれば、サービスサーバ30は、新規リモート録画予約要求<D-4>に含まれる携帯ダイレクトフラグの値をServiceID、制御機器・サービス管理ID、被制御機器の番号と対応付けて記憶部31に保存する(図9:ステップS911)。
このステップS911またはステップS914の携帯ダイレクトフラグの保存後、サービスサーバ30はServiceID、制御機器・サービス管理ID、サービスURN (Uniform Resource Name)、XMPPセッションIDを含むダイレクトアクセス開始要求<D-6>をダイレクトアクセス管理サーバ40に送信する(図9:ステップS915)。ここで、サービスURNは、被制御機器が提供可能なサービス(アプリケーション)の一つを指定する情報である。ここでは、携帯電話10からDVR20に対してリモート録画予約を行おうとしているので、サービスURNはリモート録画予約サービスを指定する情報となる。
ダイレクトアクセス管理サーバ40は、サービスサーバ30からのダイレクトアクセス開始要求<D-6>を受信すると(図11:ステップS1101)、このダイレクトアクセス開始要求<D-6>に含まれているServiceIDと制御機器・サービス管理IDの組み合わせが記憶部41に記憶されているかどうかを判定し(図11:ステップS1102)、記憶されていない場合、被制御機器の登録が必要であることを示すエラーコードをダイレクトアクセス開始応答<D-10>としてサービスサーバ30に送信する(図11:ステップS1103)。ダイレクトアクセス開始要求<D-6>に含まれているServiceIDと制御機器・サービス管理IDの組み合わせが記憶部41に記憶されている場合には、ダイレクトアクセス管理サーバ40は、ダイレクトアクセス開始要求<D-6>に含まれているXMPPセッションIDが、ダイレクトアクセス開始要求<D-6>に含まれているServiceIDと制御機器・サービス管理IDとの組み合わせに対応付けられて記憶部41に記憶されているかどうかを判定する(図11:ステップS1104)。記憶されていない場合、ダイレクトアクセス管理サーバ40は、不正XMPPセッションIDであることを示すエラーコードをダイレクトアクセス開始応答<D-10>としてサービスサーバ30に送信する(図11:ステップS1105)。サービスサーバ30は、ダイレクトアクセス管理サーバ40より、不正XMPPセッションIDであることを示すエラーコードをダイレクトアクセス開始応答<D-10>として受信すると(図9:ステップS916)、ステップS912に戻ってXMPPログイン要求<D-5>をダイレクトアクセス管理サーバ40に送信して、再度XMPPセッションの確立を行う。
またステップS1104で、ダイレクトアクセス開始要求<D-6>に含まれているXMPPセッションIDが、ダイレクトアクセス開始要求<D-6>に含まれているServiceIDと制御機器・サービス管理IDとの組み合わせに対応付けられて記憶部41に記憶されている場合は、ダイレクトアクセス管理サーバ40は、ダイレクトアクセス開始要求<D-6>で指定されているサービスを識別する情報であるサービスURNの指定情報を含むダイレクトアクセス用URI取得要求<D-7>を被制御機器であるDVR20にXMPPサーバ43とDVR20との間で確立されている常時接続セッションを通じて送信する(図11:ステップS1106)。
DVR20は、ダイレクトアクセス管理サーバ40より、サービスURNの指定情報を含むダイレクトアクセス用URI取得要求<D-7>を受信すると(図12:ステップS1201)、ダイレクトアクセス用のローカルポートの割り当てを行う(図12:ステップS1202)。次に、DVR20は、DVR20にあらかじめ割り当てられたローカルIPアドレスおよびダイレクトアクセス用のローカルポートのポート番号を含む、ダイレクトアクセス用ポートのNAT(Network Address Translation)設定要求<D-8>をルータ50に送信して、ローカルIPアドレス及びポート番号に、インターネットからアクセス可能なグローバルIPアドレスおよびポート番号をマッピングすることをルータ50に要求する(図12:ステップS1203)。たとえば、DVR20は、ダイレクトアクセス用URIの割り当てを行うために、ルータ50にUPnP IGD DCP(Device Control Protocol)などによってアクセスし、インターネットからアクセス可能なグローバルIPアドレスおよびポート番号をあらかじめ確保しておく。
DVR20は、ステップS1203のダイレクトアクセス用ポートのNAT設定要求<D-8>に対して、ルータ50より、DVR20のローカルIPアドレス及びポート番号に対応付けられたグローバルIPアドレスおよびポート番号をNAT設定応答<D-8R>として受信した場合には(図12:ステップS1208)、これらのグローバルIPアドレスおよびポート番号を用いてダイレクトアクセス用URIリストを作成し、このダイレクトアクセス用URIリストをダイレクトアクセス用URI取得応答<D-9>としてダイレクトアクセス管理サーバ40に送信する(図12:ステップS1209)。ダイレクトアクセス用URIリストとは、サービスサーバ30または携帯電話10からネットワークを通じてその機器に直接アクセスするためのURIのリストである。
ダイレクトアクセス管理サーバ40のXMPPサーバ43は、ダイレクトアクセス用URIリストをダイレクトアクセス用URI取得応答<D-9>として受信すると(図11:ステップS1107)、そのダイレクトアクセス用URIリストをダイレクトアクセス開始応答<D-10>としてサービスサーバ30に送信する(図11:ステップS1111)。
また、DVR20は、ルータ50より、グローバルIPアドレスおよびポート番号の取得エラーをダイレクトアクセス用ポートのNAT設定応答<D-8R>として受信した場合(図12:ステップS1204)にはステップS1201にて取得したサービスURNの指定情報に基づき、そのサービスURNがトンネリング可能なものであるかどうかを判定する(図12:ステップS1205)。ここで、提供されるサービスのうち特定のサービスがトンネリング可能なサービスとしてあらかじめ決められている。例えば、リモート録画のように通信するデータ量が比較的少ないサービスはトンネリング可能なサービスとして決められており、コンテンツ取得サービスのように通信するデータ量の比較的大きいサービスはトンネリンクが不可なサービスとして決められている。したがって、DVR20は、ダイレクトアクセス用URI取得要求<D-7>に含まれているサービスURNの指定情報が新規リモート録画予約であることを判定した場合には、トンネリングを指示するエラーコードをダイレクトアクセス用URI取得応答<D-9>としてダイレクトアクセス管理サーバ40に送信する(図12:ステップS1206)。トンネリングの指示は、例えば、ダイレクトアクセス用URIのアドレス部分をすべて"0"で埋めることによって行われる。
ダイレクトアクセス管理サーバ40のXMPPサーバ43は、トンネリングを指示するエラーコードをダイレクトアクセス用URI取得応答<D-9>として受信した場合には(図11:ステップS1109)、ダイレクトアクセス管理サーバ40内のトンネリング用ポートの割り当てを行い(図11:ステップS1110)、この割り当てたダイレクトアクセス管理サーバ40内トンネリング用ポートのポート番号とダイレクトアクセス管理サーバ40のグローバルIPアドレスを用いてダイレクトアクセス用URIリストを作成し、このダイレクトアクセス用URIリストを含むダイレクトアクセス開始応答<D-10>をサービスサーバ30へ送信する(図11:ステップS1111)。これによって、サービスサーバ30や携帯電話10からは、トンネリングされていることを意識することなくDVR20に対してアクセスを行うことができる。
ステップS1205の判定で、ダイレクトアクセス用URI取得要求<D-7>に含まれているサービスURNの指定情報がトンネリング不可なサービスURNであることが判定された場合には、DVR20は、空きポート獲得失敗を示すエラーコードをダイレクトアクセス用URI取得応答<D-9>としてダイレクトアクセス管理サーバ40に送信する(図12:ステップS1207)。
サービスサーバ30は、ダイレクトアクセス管理サーバ40からダイレクトアクセス用URIリストを含むダイレクトアクセス開始応答<D-10>を受信すると(図9:ステップS917)、携帯ダイレクトフラグがオンかオフかを判断する(図9:ステップS918)。携帯ダイレクトフラグがオンである場合には、携帯電話10から直接ダイレクトアクセス用URIで指定される機器にアクセスするために、サービスサーバ30は、ダイレクトアクセス用URIを含む新規リモート録画予約応答<D-13>を携帯電話10に送信する(図9:ステップS919)。携帯ダイレクトフラグがオフの場合は、サービスサーバ30は、ダイレクトアクセス用URIに対して、ダイレクトアクセス用URIと、携帯電話10より新規リモート録画予約要求<D-4>によって取得した録画予約番組情報とを含む新規リモート録画予約要求を送信する(図9:ステップS920)。
以下において、携帯電話10がDVR20に対して録画予約要求を行う際の、いくつかの具体的な例を説明する。
[3-1.サービスサーバ30での代理アクセスでのリモート録画予約:図7]
サービスサーバ30が、携帯電話10から指示を受け、代理でDVR20に対してリモート録画予約を行う場合の動作を説明する。図7の一部は、携帯電話10から指示を受けたサービスサーバ30が、代理でDVR20に対してリモート録画予約を行う場合の情報の流れを示すシーケンス図である。
携帯電話10、DVR20、サービスサーバ30、ダイレクトアクセス管理サーバ40及びルータ50間の情報の流れで、ダイレクトアクセス開始応答<D-10>までの各装置での処理は、上述した通りである。
携帯電話10から指示を受けたサービスサーバ30が、代理でDVR20に対してリモート録画予約を行う場合とは、ステップS918において携帯ダイレクトフラグがオフであると判断され、更に、ステップS917でサービスサーバ30が受信したダイレクトアクセス開始応答<D-10>に、DVR20がステップS1209でダイレクトアクセス用URI取得応答<D-9>として送信したURIが含まれている場合である。なお、既に説明したように、サービスサーバ30は、ダイレクトアクセス開始応答<D-10>として受信したダイレクトアクセス用URIにアクセスするだけであるため、ダイレクトアクセス用URIがDVR20に対応するのか、ダイレクトアクセス管理サーバ40のトンネリングに対応するものなのかは、特には判断を行う必要はない。
サービスサーバ30は、ステップS917でダイレクトアクセス開始応答<D-10>として受信したダイレクトアクセス用URIに含まれるDVR20のアドレスにアクセスして、携帯電話10より新規リモート録画予約要求<D-4>によって取得した録画予約番組情報を含む新規リモート録画予約要求<D-11>を送信する(図9:ステップS920)。
DVR20は、サービスサーバ30より、新規リモート録画予約要求<D-11>を受信すると(図12:ステップS1210)、この新規リモート録画予約要求<D-11>に含まれるダイレクトアクセス用URIの正当性チェックを行い(図12:ステップS1211)、不正なURIであるなら、その旨を示すエラーコードを新規リモート録画予約応答<D-11R>としてサービスサーバ30に送信する(図12:ステップS1212)。ここで、ダイレクトアクセス用URIの正当性チェックは、例えば、ダイレクトアクセス用URIの発行時に容易に真似のできない乱数を付加し、この乱数が新規リモート録画予約要求<D-11>のダイレクトアクセス用URIに含まれているかどうかをチェックする方法などがある。正当なURIである場合には、DVR20は、録画予約番組情報に基づいて、サービスサーバ30から要求された録画予約が既にスケジュールされている録画予約と録画日時が重複するか否かを判断する。重複する録画予約がない場合には、DVR20は、録画予約番組情報に基づく録画予約を行い、予約重複なしを示す予約重複番組リストを作成する。重複する録画予約が見つかった場合には、DVR20は、重複する録画予約の録画日時、チャンネル、番組タイトルなど含む予約重複番組リストを作成する。その後、DVR20は、予約重複番組リストを含む新規リモート録画予約応答<D-11R>をサービスサーバ30に送信する(図12:ステップS1213)。
サービスサーバ30は、新規リモート録画予約応答<D-11R>を受信すると(図9:ステップS921)、新規リモート録画予約応答<D-11R>の予約重複番組リストを、新規リモート録画予約応答<D-12>として携帯電話10に送信する(図9:ステップS922)。また、サービスサーバ30は、不正URIのエラーコードを新規リモート録画予約応答<D-11R>として受信した場合には(図9:ステップS923)、そのエラーコードを新規リモート録画予約応答<D-12>として携帯電話10に送信する(図9:ステップS924)。
携帯電話10は、サービスサーバ30より予約重複番組リストを含む新規リモート録画予約応答<D-12>を受信した場合には(図8:ステップS823)、予約重複番組リストから予約重複番組の有無を判定し(図8:ステップS824)、予約重複番組が存在するならば、表示部を通じて予約重複番組の情報をユーザに表示する(図8:ステップS825)。また、予約重複番組が存在しないならば、携帯電話10は、表示部を通じてリモート録画予約の成功を示すメッセージをユーザに表示する(図8:ステップS826)。
また、携帯電話10は、サービスサーバ30より不正URIのエラーコードを新規リモート録画予約応答<D-12>として受信した場合には(図8:ステップS827)、表示部を通じてダイレクトアクセス失敗のエラーメッセージをユーザに表示する(図8:ステップS828)。
[3-2.携帯電話10からのダイレクトでのリモート録画予約:図13]
次に、携帯電話10がサービスサーバ30を介さずにダイレクトにDVR20に対してリモート録画予約を行う場合の動作を説明する。図13は携帯電話10からダイレクトにDVR20に対してリモート録画予約を行う場合の情報の流れを示すシーケンス図である。
図13に示した携帯電話10、DVR20、サービスサーバ30、ダイレクトアクセス管理サーバ40及びルータ50間の情報の流れで、ダイレクトアクセス開始応答<D-10>までの各装置での処理は図7を用いて説明した流れと同じであるため説明を省略する。
携帯電話10からダイレクトにDVR20に対してリモート録画予約を行う場合とは、ステップS918において携帯ダイレクトフラグがオンであると判断され、更に、ステップS919でサービスサーバ30から携帯電話10に送信される新規リモート録画予約応答<D-13>に、DVR20がステップS1209でダイレクトアクセス用URI取得応答<D-9>として送信したURIが含まれている場合である。なお、既に説明したように、携帯電話10は、新規リモート録画予約応答<D-13>として受信したダイレクトアクセス用URIにアクセスするだけであるため、ダイレクトアクセス用URIがDVR20に対応するのか、ダイレクトアクセス管理サーバ40のトンネリングに対応するものなのかは、特には判断を行う必要はない。
携帯電話10は、サービスサーバ30よりダイレクトアクセス用URIを含む新規リモート録画予約応答<D-13>を受信した場合には(図8:ステップS815)、そのダイレクトアクセス用URIに含まれるDVR20のアドレスにアクセスして、ダイレクトアクセス用URIおよび録画予約番組情報を含む新規リモート録画予約要求<D-14>をDVR20に送信する(図8:ステップS816)。
DVR20は、携帯電話10より、新規リモート録画予約要求<D-14>を受信すると(図12:ステップS1210)、この新規リモート録画予約要求<D-14>に含まれるダイレクトアクセス用URIの正当性チェックを行い(図12:ステップS1211)、不正なURIであるなら、その旨を示すエラーコードを新規リモート録画予約応答<D-14R>として携帯電話10に送信する(図12:ステップS1212)。ここで、ダイレクトアクセス用URIの正当性チェックは、例えば、ダイレクトアクセス用URIの発行時に容易に真似のできない乱数を付加し、この乱数が新規リモート録画予約要求<D-14>のダイレクトアクセス用URIに含まれているかどうかをチェックする方法などがある。正当なURIである場合には、DVR20は、録画予約番組情報に基づいて、携帯電話10から要求された録画予約が既にスケジュールされている録画予約と録画日時が重複するか否かを判断する。重複する録画予約がない場合には、DVR20は、録画予約番組情報に基づく録画予約を行い、予約重複なしを示す予約重複番組リストを作成する。重複する録画予約が見つかった場合には、DVR20は、重複する録画予約の録画日時、チャンネル、番組タイトルなど含む予約重複番組リストを作成する。その後、DVR20は、予約重複番組リストを含む新規リモート録画予約応答<D-14R>を携帯電話10に送信する(図12:ステップS1213)。
携帯電話10は、新規リモート録画予約応答<D-14R>を受信すると(図8:ステップS817)、予約重複番組リストから予約重複番組の有無を判定し (図8:ステップS818)、予約重複番組が存在するならば、表示部を通じて予約重複番組の情報をユーザに表示する(図8:ステップS819)。また、予約重複番組が存在しないならば、携帯電話10は、表示部を通じてリモート録画予約の成功を示すメッセージをユーザに表示する(図8:ステップS820)。
また、携帯電話10は、不正URIのエラーコードを新規リモート録画予約応答<D-14R>として受信した場合には(図8:ステップS821)、表示部を通じてダイレクトアクセス失敗を示すエラーメッセージをユーザに表示する(図8:ステップS822)。
[3-3.サービスサーバ30からのトンネリングを利用したリモート録画予約:図14]
次に、サービスサーバ30が、携帯電話10から指示を受け、ダイレクトアクセス管理サーバ40のXMPPサーバ43によるトンネリングを利用してDVR20に対してリモート録画予約を行う場合の動作を説明する。図14は携帯電話10からの指示を受けたサービスサーバ30が、XMPPサーバ43によるトンネリングを利用してDVR20に対してのリモート録画予約を行う場合の情報の流れを示すシーケンス図である。
図14に示した携帯電話10、DVR20、サービスサーバ30、ダイレクトアクセス管理サーバ40及びルータ50間の情報の流れで、ダイレクトアクセス開始応答<D-10>までの各装置での処理は図7を用いて説明した流れと同じであるため説明を省略する。
携帯電話10から指示を受けたサービスサーバ30が、XMPPサーバ43によるトンネリングを利用してDVR20に対してリモート録画予約を行う場合とは、ステップS918において携帯ダイレクトフラグがオフであると判断され、更に、ステップS917でサービスサーバ30が受信したダイレクトアクセス開始応答<D-10>に、ダイレクトアクセス管理サーバ40がステップS1110で割り当てたトンネリングのためのURIが含まれている場合である。なお、既に説明したように、サービスサーバ30は、ダイレクトアクセス開始応答<D-10>として受信したダイレクトアクセス用URIにアクセスするだけであるため、ダイレクトアクセス用URIがDVR20に対応するのか、ダイレクトアクセス管理サーバ40のトンネリングに対応するものなのかは、特には判断を行う必要はない。
サービスサーバ30は、ステップS917でダイレクトアクセス開始応答<D-10>として受信したダイレクトアクセス用URIに含まれるダイレクトアクセス管理サーバ40のアドレスにアクセスして、ダイレクトアクセス用URIと、携帯電話10より新規リモート録画予約要求<D-4>によって取得した録画予約番組情報とを含む新規リモート録画予約要求<D-15>を送信する(図9:ステップS920)。
ダイレクトアクセス管理サーバ40は、ダイレクトアクセス用URIと録画予約番組情報を含む新規リモート録画予約要求<D-15>を受信した場合(図11:ステップS1112)、この新規リモート録画予約要求<D-15>に含まれるダイレクトアクセス用URIをチェックし(図11:ステップS1113)、不正なダイレクトアクセス用URIである場合は、不正URIである旨を示すエラーコードを新規リモート録画予約応答<D-17>としてサービスサーバ30に送信する(図11:ステップS1114)。正当なダイレクトアクセス用URIであれば、ダイレクトアクセス管理サーバ40は、XMPPサーバ43を通じて、録画予約番組情報を含む新規リモート録画予約要求<D-16>をDVR20に送信する(図11:ステップS1115)。この際、DVR20でダイレクトアクセス管理サーバ40内のXMPPサーバ43を介したトンネリングによるアクセスであることがわかるように、例えば、ダイレクトアクセス用URIのアドレス部分をすべて"0"で埋める。
DVR20は、ダイレクトアクセス管理サーバ40より、新規リモート録画予約要求<D-16>を受信すると(図12:ステップS1210)、この新規リモート録画予約要求<D-16>に含まれるダイレクトアクセス用URIの正当性チェックを行い(図12:ステップS1211)、不正なURIであるなら、その旨を示すエラーコードを新規リモート録画予約応答<D-16R>としてダイレクトアクセス管理サーバ40に送信する(図12:ステップS1212)。正当なURIである場合には、DVR20は、予約重複番組リストを含む情報を新規リモート録画予約応答<D-16R>としてダイレクトアクセス管理サーバ40に送信する(図12:ステップS1213)。
ダイレクトアクセス管理サーバ40は、DVR20からの予約重複番組リストを含む新規リモート録画予約応答<D-16R>を受信すると(図11:ステップS1116)、この予約重複番組リストを含む新規リモート録画予約応答<D-17>をサービスサーバ30に送信する(図11:ステップS1117)。
サービスサーバ30は、この予約重複番組リストを含む新規リモート録画予約応答<D-17>を受信すると(図9:ステップS921)、この予約重複番組リストを含む新規リモート録画予約応答<D-18>を携帯電話10へ送信する(図9:ステップS922)。また、サービスサーバ30は、ダイレクトアクセス管理サーバ40からエラーコードを新規リモート録画予約応答<D-17>として受信した場合は(図9:ステップS923)、このエラーコードを新規リモート録画予約応答<D-18>として携帯電話10へ送信する(図9:ステップS924)。その後の、サービスサーバ30及び携帯電話10における処理は上述した通りである。
[3-4.携帯電話からのトンネリングを利用したリモート録画予約:図26]
次に、携帯電話10が、サービスサーバ30を介さずにダイレクトアクセス管理サーバ40のXMPPサーバ43によるトンネリングを利用してDVR20に対してリモート録画予約を行う場合の動作を説明する。図26はサービスサーバ30を介さないで携帯電話10からXMPPサーバ43によるトンネリングを利用してDVR20に対してリモート録画予約を行う場合の情報の流れを示すシーケンス図である。
図26に示した携帯電話10、DVR20、サービスサーバ30、ダイレクトアクセス管理サーバ40及びルータ50間の情報の流れで、ダイレクトアクセス開始応答<D-10>までの各装置での処理は図7を用いて説明した流れと同じであるため説明を省略する。
携帯電話10が、サービスサーバ30を介さずにXMPPサーバ43によるトンネリングを利用してDVR20に対してリモート録画予約を行う場合とは、ステップS918において携帯ダイレクトフラグがオンであると判断され、更に、ステップS919でサービスサーバ30から携帯電話10に送信される新規リモート録画予約応答<D-13>に、ダイレクトアクセス管理サーバ40がステップS1110で割り当てたトンネリングのためのURIが含まれている場合である。なお、既に説明したように、携帯電話10は、新規リモート録画予約応答<D-13>として受信したダイレクトアクセス用URIにアクセスするだけであるため、ダイレクトアクセス用URIがDVR20に対応するのか、ダイレクトアクセス管理サーバ40のトンネリングに対応するものなのかは、特には判断を行う必要はない。
まず、携帯電話10は、サービスサーバ30よりダイレクトアクセス用URIを含む新規リモート録画予約応答<D-13>を受信した場合には(図8:ステップS815)、そのダイレクトアクセス用URIに含まれるダイレクトアクセス管理サーバ40のアドレスにアクセスして、ダイレクトアクセス用URIと録画予約番組情報とを含む新規リモート録画予約要求<D-55>をダイレクトアクセス管理サーバ40に送信する(図8:ステップS816)。
ダイレクトアクセス管理サーバ40は、携帯電話10から新規リモート録画予約要求<D-55>を受信すると(図11:ステップS1112)、この新規リモート録画予約要求<D-55>に含まれるダイレクトアクセス用URIをチェックし(図11:ステップS1113)、不正なダイレクトアクセス用URIである場合は、不正URIである旨を示すエラーコードを新規リモート録画予約応答<D-57R>として携帯電話10に送信する(図11:ステップS1114)。正当なダイレクトアクセス用URIであれば、ダイレクトアクセス管理サーバ40は、XMPPサーバ43を通じて、録画予約番組情報を含む新規リモート録画予約要求<D-16>をDVR20に送信する(図11:ステップS1115)。この際、DVR20でダイレクトアクセス管理サーバ40内のXMPPサーバ43を介したトンネリングによるアクセスであることがわかるように、例えば、ダイレクトアクセス用URIのアドレス部分をすべて"0"で埋める。
DVR20は、ダイレクトアクセス管理サーバ40より、新規リモート録画予約要求<D-16>を受信すると(図12:ステップS1210)、この新規リモート録画予約要求<D-16>に含まれるダイレクトアクセス用URIの正当性チェックを行い(図12:ステップS1211)、不正なURIであるなら、その旨を示すエラーコードを新規リモート録画予約応答<D-16R>としてダイレクトアクセス管理サーバ40に送信する(図12:ステップS1212)。正当なURIである場合には、DVR20は、予約重複番組リストを含む情報を新規リモート録画予約応答<D-16R>としてダイレクトアクセス管理サーバ40に送信する(図12:ステップS1213)。
ダイレクトアクセス管理サーバ40は、DVR20から予約重複番組リストを含む新規リモート録画予約応答<D-16R>を受信すると(図11:ステップS1116)、この予約重複番組リストを含む新規リモート録画予約応答<D-57R>を携帯電話10に送信する(図11:ステップS1117)。また、ダイレクトアクセス管理サーバ40は、DVR20からエラーコードを新規リモート録画予約応答<D-16R>として受信した場合には、このエラーコードを新規リモート録画予約応答<D-57R>として携帯電話10へ送信する。その後の携帯電話10における処理は上述した通りである。
以上で説明したように、携帯電話10は、DVR20へのダイレクトなアクセスのみならず、サービスサーバ30による代理アクセス、ダイレクトアクセス管理サーバ40によるXMPPを用いたトンネリングなどを利用して、DVR20への録画予約処理を実行することが可能である。
[4.コンテンツ取得]
次に、携帯電話10が、DVR20からコンテンツを取得する場合の動作を説明する。図15は携帯電話10からのDVR20へのダイレクトアクセスによるコンテンツ取得時の情報の流れを示すシーケンス図である。図17はコンテンツ取得時の携帯電話10の動作を示すフローチャート、図18および図19はコンテンツ取得時のサービスサーバ30の動作を示すフローチャートである。
携帯電話10のユーザから、コンテンツ取得サービスを受信するために、ダイレクトアクセス利用開始の指示が携帯電話10に与えられると(図17:ステップS1701)、携帯電話10は自身に予め設定されているユーザ識別情報を含む被制御機器リスト取得要求<D-1>をサービスサーバ30に送信する(図17:ステップS1702)。
サービスサーバ30は、携帯電話10より被制御機器リスト取得要求<D-1>を受信すると(図9:ステップS901)、この被制御機器リスト取得要求<D-1>に含まれるユーザ識別情報に対応する制御機器・サービス管理IDが記憶部31に記憶されているかどうかを判定する(図9:ステップS902)。ユーザ識別情報に対応する制御機器・サービス管理IDが記憶部31に記憶されていない場合、サービスサーバ30は、サービス対象の被制御機器の登録が必要であることを示すエラーコードを被制御機器リスト取得応答<D-3>として携帯電話10に送信する(図9:ステップS903)。ユーザ識別情報に対応する制御機器・サービス管理IDが記憶部31に記憶されている場合は、ダイレクトアクセス管理サーバ40に管理されている制御機器・サービス管理IDに関連付けられている被制御機器の一覧を取得するために、サービスサーバ30は、サービスを識別する情報であるServiceIDおよび制御機器・サービス管理IDを含む被制御機器リスト取得要求<D-2>をダイレクトアクセス管理サーバ40に送信する(図9:ステップS904)。
ダイレクトアクセス管理サーバ40は、サービスサーバ30からの被制御機器リスト取得要求<D-2>を受信すると(図10:ステップS1012)、この被制御機器リスト取得要求<D-2>に含まれるServiceIDおよび制御機器・サービス管理IDの組み合わせが記憶部41に記憶されているものと一致するかどうかを判定し(図10:ステップS1013)、もし記憶されていない場合には、未登録であることを示すエラーコードを被制御機器リスト取得応答<D-2R>としてサービスサーバ30に送信する(図10:ステップS1014)。また、被制御機器リスト取得要求<D-2>に含まれるServiceIDおよび制御機器・サービス管理IDの組み合わせが記憶部41に記憶されていることが判定された場合、ダイレクトアクセス管理サーバ40は、記憶部41に記憶されている制御機器・サービス管理IDと被制御機器管理IDとの紐付け内容に従って、携帯電話10から制御可能な被制御機器の被制御機器管理IDに対して改めて振り直した番号と被制御機器の機器認証情報に含まれる機器名称等からなる一覧を被制御機器リストとして生成し、この被制御機器リストを制御機器・サービス管理IDと対応付けて記憶部41に保存するとともに、この被制御機器リストを含む被制御機器リスト取得応答<D-2R>をサービスサーバ30に送信する(図10:ステップS1015)。
サービスサーバ30は、ダイレクトアクセス管理サーバ40から未登録であることを示すエラーコードを被制御機器リスト取得応答<D-2R>として受信した場合は (図9:ステップS905)、被制御機器の登録が必要であることを示すエラーコードを被制御機器リスト取得応答<D-3>として携帯電話10に送信する(図9:ステップS906)。また、サービスサーバ30が、ダイレクトアクセス管理サーバ40から被制御機器リストを含む被制御機器リスト取得応答<D-2R>を受信した場合は(図9:ステップS907)、この被制御機器リストを含む被制御機器リスト取得応答<D-3>を携帯電話10に送信する(図9:ステップS908)。
携帯電話10は、サービスサーバ30よりエラーコードを被制御機器リスト取得応答<D-3>として受信した場合(図17:ステップS1703)、被制御機器の登録が必要であることを示すエラーメッセージを、表示部を通じてユーザに表示する(図17:ステップS1704)。また、携帯電話10は、被制御機器リストを含む被制御機器リスト取得応答<D-3>を受信した場合は(図17:ステップS1705)、その被制御機器リストに複数の被制御機器の番号が存在するかどうかを判定する(図17:ステップS1706)。複数の被制御機器の番号が存在する場合には、携帯電話10は、その被制御機器リストの内容を表示部に表示して(図17:ステップS1707)、ユーザにその中から1つの被制御機器の番号を選択させ(図17:ステップS1708)、その選択された被制御機器の番号を記憶部11に保存する(図17:ステップS1709, 1710)。複数の被制御機器が存在しない場合には、その一つの被制御機器の番号を記憶部11に保存する(図17:ステップS1711, S1710)。
次に、携帯電話10は、自身に予め設定された携帯ダイレクトフラグを基に、DVR20のコンテンツ取得サービスに携帯電話10からダイレクトにアクセスするか、サービスサーバ30を介してアクセスするかを判断して処理を分岐する(図17:ステップS1712)。
携帯電話10からダイレクトにDVR20のコンテンツ取得サービスにアクセスする場合、携帯電話10は、ユーザ識別情報、検索条件、被制御機器の番号、携帯ダイレクトフラグ(オン)を含むコンテンツ検索要求<D-44>をサービスサーバ30に送信する(図17:ステップS1713)。また、携帯電話10がサービスサーバ30を介してコンテンツを取得する場合、携帯電話10は、ユーザ識別情報、検索条件、被制御機器の番号、携帯ダイレクトフラグ(オフ)を含むコンテンツ検索要求<D-44>をサービスサーバ30に送信する(図17:ステップS1724)。ここで、検索条件とは、コンテンツを検索する条件であり、例えば、コンテンツが静止画データであるという条件や、コンテンツが録画済の映像データであるなどを指定する情報である。検索条件として日付、データサイズなどの項目を加えて、更に詳細な検索条件を設定できるようにしてもよい。
サービスサーバ30は、携帯電話10から、コンテンツ検索要求<D-44>を受信すると(図18:ステップS1801)、利用可能なXMPPセッションIDが記憶部31に記憶されているか否かを調べる(図18:ステップS1802)。利用可能なXMPPセッションIDが既に記憶部31に記憶されていれば、サービスサーバ30はコンテンツ検索要求<D-44>に含まれる携帯ダイレクトフラグの値をServiceID、制御機器・サービス管理ID、被制御機器の番号と対応付けて記憶部31に保存する(図18:ステップS1803)。利用可能なXMPPセッションIDが記憶されていない場合には、サービスサーバ30は、XMPPサーバ43とXMPPセッションを確立するために、ServiceID、制御機器・サービス管理ID、被制御機器の番号を含むXMPPログイン要求<D-5>をダイレクトアクセス管理サーバ40に送信する(図18:ステップS1804)。
ダイレクトアクセス管理サーバ40は、サービスサーバ30からのXMPPログイン要求<D-5>を受信すると(図10:ステップS1016)、このXMPPログイン要求<D-5>に含まれるServiceID、制御機器・サービス管理ID、および被制御機器の番号の組み合わせが記憶部41に記憶されているかどうかを判定する(図10:ステップS1017)。記憶されていない場合、ダイレクトアクセス管理サーバ40は、対応するサービス対象の被制御機器が存在しないことを示すエラーコードをXMPPログイン応答<D-5R>としてサービスサーバ30に送信する(図10:ステップS1018)。また、対応するサービス対象の被制御機器が記憶部41に記憶されている場合は、ダイレクトアクセス管理サーバ40は、XMPPセッションIDの生成および保存を行い(図10:ステップS1019)、このXMPPセッションIDを含むXMPPログイン応答<D-5R>をサービスサーバ30に送信する(図10:ステップS1020)。
サービスサーバ30は、ダイレクトアクセス管理サーバ40からXMPPセッションIDを含むXMPPログイン応答<D-5R>を受信すると(図18:ステップS1805)、これに含まれているXMPPセッションIDおよびステップS1801のコンテンツ検索要求<D-44>に含まれる携帯ダイレクトフラグの値をServiceID、制御機器・サービス管理ID、被制御機器リスト番号と対応付けて記憶部31に保存する(図18:ステップS1806)。
ステップS1803またはステップS1806の携帯ダイレクトフラグの保存後、サービスサーバ30はServiceID、制御機器・サービス管理ID、サービスURN、XMPPセッションIDを含むダイレクトアクセス開始要求<D-6>をダイレクトアクセス管理サーバ40に送信する(図18:ステップS1807)。ここでは、携帯電話10からDVR20に対してコンテンツ取得を行おうとしているので、サービスURNはコンテンツ取得サービスを指定する情報となる。
ダイレクトアクセス管理サーバ40は、サービスサーバ30からのダイレクトアクセス開始要求<D-6>を受信すると(図11:ステップS1101)、このダイレクトアクセス開始要求<D-6>に含まれているServiceIDと制御機器・サービス管理IDの組み合わせが記憶部41に記憶されているかどうかを判定し(図11:ステップS1102)、記憶されていない場合、被制御機器の登録が必要であることを示すエラーコードをダイレクトアクセス開始応答<D-10>としてサービスサーバ30に送信する(図11:ステップS1103)。ダイレクトアクセス開始要求<D-6>に含まれているServiceIDと制御機器・サービス管理IDの組み合わせが記憶部41に記憶されている場合には、ダイレクトアクセス管理サーバ40は、ダイレクトアクセス開始要求<D-6>に含まれているXMPPセッションIDが、ダイレクトアクセス開始要求<D-6>に含まれているServiceIDと制御機器・サービス管理IDとの組み合わせに対応付けられて記憶部41に記憶されているかどうかを判定する(図11:ステップS1104)。それが記憶されていない場合、ダイレクトアクセス管理サーバ40は、不正XMPPセッションIDであることを示すエラーコードをダイレクトアクセス開始応答<D-10>としてサービスサーバ30に送信する(図11:ステップS1105)。ダイレクトアクセス開始要求<D-6>に含まれているXMPPセッションIDが、ダイレクトアクセス開始要求<D-6>に含まれているServiceIDと制御機器・サービス管理IDとの組み合わせに対応付けられて記憶部41に記憶されている場合は、ダイレクトアクセス管理サーバ40は、ダイレクトアクセス開始要求<D-6>で指定されているサービスURNの指定情報を含むダイレクトアクセス用URI取得要求<D-7>を、ダイレクトアクセス管理サーバ40内のXMPPサーバ43を介して、DVR20に送信する(図11:ステップS1106)。
サービスサーバ30は、ダイレクトアクセス管理サーバ40より、不正XMPPセッションIDであることを示すエラーコードをダイレクトアクセス開始応答<D-10>として受信すると(図18:ステップS1808)、ステップS1804に戻って、再びXMPPログイン要求<D-5>をダイレクトアクセス管理サーバ40に送信して、再度XMPPセッションの確立を行う。
DVR20は、ダイレクトアクセス管理サーバ40より、サービスURNの指定情報を含むダイレクトアクセス用URI取得要求<D-7>を受信したとき(図12:ステップS1201)、ダイレクトアクセス用のローカルポートの割当てを行う(図12:ステップS1202)。次に、DVR20は、DVR20にあらかじめ割り当てられたローカルIPアドレスおよびダイレクトアクセス用のローカルポートのポート番号を含む、ダイレクトアクセス用ポートのNAT設定要求<D-8>をルータ50に送信して、ローカルIPアドレス及びポート番号に、インターネットからアクセス可能なグローバルIPアドレスおよびポート番号をマッピングすることをルータ50に要求する(図12:ステップS1203)。
DVR20は、ステップS1203のダイレクトアクセス用ポートのNAT設定要求<D-8>に対して、ルータ50より、グローバルIPアドレスおよびポート番号の取得エラーをダイレクトアクセス用ポートのNAT設定応答<D-8R>として受信した場合(図12:ステップS1204)、ステップS1201にて取得したサービスURNの指定情報に基づき、そのサービスURNがトンネリング可能なものであるかどうかを判定する(図12:ステップS1205)。DVR20は、ダイレクトアクセス用URI取得要求<D-7>に含まれているサービスURNがトンネリング可能なサービスURNであることを判定した場合には、トンネリングを指示するエラーコードをダイレクトアクセス用URI取得応答<D-9>としてダイレクトアクセス管理サーバ40に送信する(図12:ステップS1206)。ダイレクトアクセス用URI取得要求<D-7>に含まれているサービスURNの指定情報がトンネリング可能なサービスURNでない場合には、DVR20は、空きポート獲得失敗を示すエラーコードをダイレクトアクセス用URI取得応答<D-9>としてダイレクトアクセス管理サーバ40に送信する(図12:ステップS1207)。ここで、コンテンツ取得サービスはリモート録画予約のサービスに比べて転送されるデータ量が大きいので、トンネリング不可のサービスURNとしているが、これに限定される必要はない。トンネリングの可否に関しては、サービス提供者が、ダイレクトアクセス管理サーバ40の能力に応じて適宜設定することが可能である。
また、DVR20は、ダイレクトアクセス用ポートのNAT設定要求<D-8>に対して、ルータ50より、DVR20のローカルIPアドレス及びポート番号に対応付けられたグローバルIPアドレスおよびポート番号をNAT設定応答<D-8R>として受信した場合には(図12:ステップS1208)、これらのグローバルIPアドレスおよびポート番号を用いてダイレクトアクセス用URIリストを作成し、このダイレクトアクセス用URIリストをダイレクトアクセス用URI取得応答<D-9>としてダイレクトアクセス管理サーバ40に送信する(図12:ステップS1209)。
ダイレクトアクセス管理サーバ40のXMPPサーバ43は、ダイレクトアクセス用URIリストをダイレクトアクセス用URI取得応答<D-9>として受信すると(図11:ステップS1107)、そのダイレクトアクセス用URIリストをダイレクトアクセス開始応答<D-10>としてサービスサーバ30に送信する(図11:ステップS1111)。
また、ダイレクトアクセス管理サーバ40は、トンネリングによるコンテンツ取得を指示するエラーコードをダイレクトアクセス用URI取得応答<D-9>として受信した場合には(図11:ステップS1109)、ダイレクトアクセス管理サーバ40内トンネリング用ポートの割当てを行い(図11:ステップS1110)、この割り当てたダイレクトアクセス管理サーバ40内トンネリング用ポートのポート番号とダイレクトアクセス管理サーバ40のグローバルIPアドレスを用いてダイレクトアクセス用URIリストを作成し、このダイレクトアクセス用URIリストを含むダイレクトアクセス開始応答<D-10>をサービスサーバ30へ送信する(図11:ステップS1111)。
サービスサーバ30は、ダイレクトアクセス管理サーバ40からのダイレクトアクセス開始応答<D-10>を受信すると(図18:ステップS1809)、携帯ダイレクトフラグがオンかオフかを判断する(図18:ステップS1810)。携帯ダイレクトフラグがオンである場合には、サービスサーバ30は、携帯電話10から直接ダイレクトアクセス用URIで指定される機器にアクセスするために、ダイレクトアクセス用URIを含むコンテンツ検索応答<D-20>を携帯電話10に送信する(図18:ステップS1811)。携帯ダイレクトフラグがオフである場合には、サービスサーバ30は、ダイレクトアクセス用URIに対して、ダイレクトアクセス用URIと、携帯電話10よりコンテンツ検索要求<D-44>によって取得した検索条件とを含むコンテンツ検索要求<D-19>をDVR20に送信する(図18:ステップS1812)。
以下において、携帯電話10がDVR20に対してコンテンツ取得要求を行う際の、いくつかの具体的な例を説明する。
[4-1.携帯電話10からダイレクトにアクセス:図15]
携帯電話10が、サービスサーバ30を介さずにダイレクトにDVR20からコンテンツ取得を行う場合の動作を説明する。図15は携帯電話10からダイレクトにDVR20からコンテンツ取得を行う場合の情報の流れを示すシーケンス図である。
図15に示した携帯電話10、DVR20、サービスサーバ30、ダイレクトアクセス管理サーバ40及びルータ50間の情報の流れで、ダイレクトアクセス開始応答<D-10>までの各装置での処理は、上述した通りである。
なお、携帯電話10からダイレクトにDVR20に対してコンテンツ取得を行う場合とは、ステップS1810において携帯ダイレクトフラグがオンであると判断され、更に、ダイレクトアクセス管理サーバ40におけるトンネリングを行わない場合である。
まず、携帯電話10からダイレクトにDVR20に対してコンテンツの検索を要求し、検索条件に合致するコンテンツのタイトルリストを取得する流れについて説明する。
携帯電話10は、サービスサーバ30よりダイレクトアクセス用URIを含むコンテンツ検索応答<D-20>を受信すると(図17:ステップS1714)、そのダイレクトアクセス用URIに含まれるDVR20のアドレスにアクセスして、ダイレクトアクセス用URIおよび検索条件を含むコンテンツ検索要求<D-29>をDVR20に送信する(図17:ステップS1715)。
DVR20は、携帯電話10より、ダイレクトアクセス用URIおよび検索条件を含むコンテンツ検索要求<D-29>を受信すると(図12:ステップS1214)、このコンテンツ検索要求<D-29>に含まれるダイレクトアクセス用URIの正当性チェックを行い(図12:ステップS1215)、不正なURIであるなら、不正なURIであることを示すエラーコードをコンテンツ検索応答<D-29R>として携帯電話10に送信する(図12:ステップS1216)。正当なURIである場合は、DVR20は、コンテンツ検索要求<D-29>内の検索条件に従って記憶部21の中から検索条件に合致するコンテンツを検索して、検索結果のコンテンツのタイトルリストとLocal URIリストを生成する。その後、DVR20は、生成したタイトルリストとLocal URIリストとをコンテンツ検索応答<D-29R>として携帯電話10に送信する(図12:ステップS1217)。ここで、Lacal URIとは、コンテンツのローカルな保存場所を示す情報(URI)である。例えば、DVR20内でローカルな指定方法で特定される記憶部21内で保存場所を示す情報であったり、DVR20が接続されている家庭内のネットワークでのローカルなアドレスで特定される家庭内ネットワーク内での保存場所を指し示す情報などである。
携帯電話10は、DVR20から不正なURIであることを示すエラーコードをコンテンツ検索応答<D-29R>として受信すると(図17:ステップS1722)、ダイレクトアクセスの失敗を示すメッセージを表示部を通してユーザに表示する(図17:ステップS1723)。
また、携帯電話10は、DVR20から、コンテンツのタイトルリスト、Local URIリストを含むコンテンツ検索応答<D-29R>を受信した場合には(図17:ステップS1716)、コンテンツ取得のための処理に進む。
次に、携帯電話10がDVR20からダイレクトにコンテンツ取得するための処理の流れについて説明する。
携帯電話10は、DVR20から、コンテンツのタイトルリスト、Local URIリストを含むコンテンツ検索応答<D-29R>を受信した場合(図17:ステップS1716)、受信したコンテンツのタイトルの一覧を表示部に表示し、表示されたタイトルの中からユーザによって選択されたコンテンツに対応するLocal URIを抽出してコンテンツの取得を要求するためのLocal URIリストを作成する。その後、携帯電話10は、ユーザ識別情報、選択コンテンツのLocal URIリスト、被制御機器の番号を含むURI取得要求<D-30>をサービスサーバ30に送信する(図17:ステップS1717)。ここで、携帯電話10が、再度、DVR20へのダイレクトアクセス用URIを取得するのは、ステップS1716で取得したLocal URIはインターネットから直接アクセスできない場所を指し示しているためである。
サービスサーバ30は、URI取得要求<D-30>を受信すると(図19:ステップS1901)、利用可能なXMPPセッションIDが記憶部31に記憶されているか否かを調べる(図19:ステップS1902)。利用可能なXMPPセッションIDが記憶されていない場合、サービスサーバ30は、ダイレクトアクセス管理サーバ40に対してXMPPログイン要求<D-5>を送信する(図19:ステップS1903) 。サービスサーバ30は、ダイレクトアクセス管理サーバ40からのXMPPログイン応答<D-5R>を受信して(図19:ステップS1904)、受信したXMPPログイン応答<D-5R>に含まれるXMPPセッションIDを記憶部31に保存する(図19:ステップS1905)。その後、サービスサーバ30は、ServiceID、制御機器・サービス管理ID、サービスURN、XMPPセッションID、コンテンツのLocal URIリストを含むダイレクトアクセス開始要求<D-31>をダイレクトアクセス管理サーバ40に送信する(図19:ステップS1906)。また、利用可能なXMPPセッションIDが既に記憶されている場合にも、サービスサーバ30は、ダイレクトアクセス開始要求<D-31>をダイレクトアクセス管理サーバ40に送信する(図19:ステップS1906)。ここでは、携帯電話10からDVR20に対してコンテンツ取得を行おうとしているので、サービスURNはコンテンツ取得サービスを指定する情報となる。
ダイレクトアクセス管理サーバ40は、このダイレクトアクセス開始要求<D-31>を受信すると(図11:ステップS1101)、これに含まれているServiceIDと制御機器・サービス管理IDの組み合わせが記憶部41に記憶されているかどうかを判定し(図11:ステップS1102)、記憶されていない場合には、被制御機器の登録が必要であることを示すエラーコードをダイレクトアクセス開始応答<D-35>としてサービスサーバ30に送信する(図11:ステップS1103)。ServiceIDと制御機器・サービス管理IDの組み合わせが記憶部41に記憶されている場合には、ダイレクトアクセス管理サーバ40は、ダイレクトアクセス開始要求<D-31>に含まれているXMPPセッションIDが、ダイレクトアクセス開始要求<D-31>に含まれているServiceIDと制御機器・サービス管理IDとの組み合わせに対応付けられて記憶部41に記憶されているかどうかを判定する(図11:ステップS1104)。それが記憶されていない場合、ダイレクトアクセス管理サーバ40は、不正XMPPセッションIDであることを示すエラーコードをダイレクトアクセス開始応答<D-35>としてサービスサーバ30に送信する(図11:ステップS1105)。XMPPセッションIDがServiceIDと制御機器・サービス管理IDとの組み合わせに対応付けられて記憶部41に記憶されている場合、ダイレクトアクセス管理サーバ40は、ダイレクトアクセス開始要求<D-31>で指定されているサービスURNおよびLocal URIリストを含むダイレクトアクセス用URI取得要求<D-32>をDVR20に送信する(図11:ステップS1106)。
サービスサーバ30は、ダイレクトアクセス管理サーバ40から、不正XMPPセッションIDであることを示すエラーコードをダイレクトアクセス開始応答<D-35>として受信すると(図19:ステップS1907)、ステップS1903に戻って、ダイレクトアクセス管理サーバ40に対してXMPPログイン要求<D-5>を再度行い、ダイレクトアクセス管理サーバ40からのXMPPログイン応答<D-5R>を受信して(図19:ステップS1904)、これに含まれるXMPPセッションIDを記憶部41に保存する(図19:ステップS1905)。
DVR20は、ダイレクトアクセス管理サーバ40よりダイレクトアクセス用URI取得要求<D-32>を受信すると(図12:ステップS1201)、ダイレクトアクセス用のローカルポートの割当てを行う(図12:ステップS1202)。次に、DVR20は、ローカルIPアドレスおよびダイレクトアクセス用のローカルポートのポート番号を含む、ダイレクトアクセス用ポートのNAT設定要求<D-33>をルータ50に送信する(図12:ステップS1203)。
DVR20は、ルータ50より、グローバルIPアドレスおよびポート番号の取得エラーをサービスサーバ30からのNAT設定応答<D-33R>として受信した場合(図12:ステップS1204)、ステップS1201にて取得したサービスURNの指定情報に基づき、そのサービスURNがトンネリング可能なものであるかどうかを判定する(図12:ステップS1205)。DVR20は、トンネリング可能なサービスURNであると判定した場合には、トンネリングを指示するエラーコードをダイレクトアクセス用URI取得応答<D-34>としてダイレクトアクセス管理サーバ40に送信する(図12:ステップS1206)。サービスURNの指定情報がトンネリング可能なサービスURNではない場合には、空きポート獲得失敗を示すエラーコードをダイレクトアクセス用URI取得応答<D-34>としてダイレクトアクセス管理サーバ40に送信する(図12:ステップS1207)。
また、DVR20は、ダイレクトアクセス用ポートのNAT設定要求<D-33>に対して、ルータ50より、DVR20のローカルIPアドレス及びポート番号に対応付けられたグローバルIPアドレスおよびポート番号を、NAT設定応答<D-33R>として受信した場合には(図12:ステップS1208)、これらのグローバルIPアドレスおよびポート番号を用いてダイレクトアクセス用URIリストを作成し、このダイレクトアクセス用URIリストをダイレクトアクセス用URI取得応答<D-34>としてダイレクトアクセス管理サーバ40に送信する(図12:ステップS1209)。
ダイレクトアクセス管理サーバ40のXMPPサーバ43は、ダイレクトアクセス用URIリストをダイレクトアクセス用URI取得応答<D-34>として受信すると(図11:ステップS1107)、そのダイレクトアクセス用URIリストをダイレクトアクセス開始応答<D-35>としてサービスサーバ30に送信する(図11:ステップS1111)。
また、ダイレクトアクセス管理サーバ40は、トンネリングによるコンテンツ取得を指示するエラーコードをダイレクトアクセス用URI取得応答<D-34>として受信した場合には(図11:ステップS1109)、ダイレクトアクセス管理サーバ40内トンネリング用ポートの割当てを行い(図11:ステップS1110)、この割り当てたダイレクトアクセス管理サーバ40内トンネリング用ポートのポート番号とダイレクトアクセス管理サーバ40のグローバルIPアドレスを用いてダイレクトアクセス用URIリストを作成し、このダイレクトアクセス用URIリストを含むダイレクトアクセス開始応答<D-35>をサービスサーバ30へ送信する(図11:ステップS1111)。
サービスサーバ30は、ダイレクトアクセス管理サーバ40から、ダイレクトアクセス用URIリストを含むダイレクトアクセス開始応答<D-35>を受信した場合には(図19:ステップS1908)、そのダイレクトアクセス用URIリストを含むURI取得応答<D-36>を携帯電話10へ送信する(図19:ステップS1909)。
以上により、携帯電話10は、DVR20からダイレクトにコンテンツを取得するためのダイレクトアクセスURIを取得したので、DVR20から選択されたコンテンツを取得する処理を開始する。なお、ここでは、携帯電話10がURI取得応答<D-36>として受信したダイレクトアクセス用URIリストには、ユーザによって選択されたコンテンツのそれぞれに対応するダイレクトアクセスURIが格納されている。
携帯電話10は、ダイレクトアクセス用URIリストを含むURI取得応答<D-36>を受信すると(図17:ステップS1718)、そのダイレクトアクセス用URIリストの中から取得処理を行うコンテンツに関するダイレクトアクセス用URIを選択し、そのダイレクトアクセス用URIを含むコンテンツ取得要求<D-37>をDVR20にダイレクトに送信する(図17:ステップS1719)。
DVR20は、携帯電話10からダイレクトアクセス用URIを含むコンテンツ取得要求<D-37>を受信すると(図12:ステップS1218)、このコンテンツ取得要求<D-37>に含まれるダイレクトアクセス用URIの正当性チェックを行い(図12:ステップS1219)、不正なURIであるなら、不正なURIであることを示すエラーコードをコンテンツ取得応答<D-37R>として携帯電話10に送信する(図12:ステップS1220)。正当なURIである場合は、DVR20は、そのダイレクトアクセス用URIで指定されているコンテンツをコンテンツ取得応答<D-37R>として携帯電話10に送信する(図12:ステップS1221)。
携帯電話10は、DVR20からコンテンツをコンテンツ取得応答<D-37R>として受信すると(図17:ステップS1720)、ダイレクトアクセス用URIリストに格納されているすべてのコンテンツの取得が完了するまで(図17:ステップS1721)、ステップS1719のコンテンツ取得要求<D-37>をDVR20に送信することを繰り返す。また、携帯電話10は、DVR20から不正なURIであることを示すエラーコードをコンテンツ取得応答<D-37R>として受信した場合には、ダイレクトアクセスの失敗を示すメッセージを表示部を通してユーザに表示する。
[4-2.サービスサーバ30を介したコンテンツ取得:図16]
次に、携帯電話10が、サービスサーバ30を介してDVR20からコンテンツを取得する場合の動作を説明する。図16はサービスサーバ30からDVR20へのダイレクトアクセスによるコンテンツ取得時の情報の流れを示すシーケンス図である。
図16に示した携帯電話10、DVR20、サービスサーバ30、ダイレクトアクセス管理サーバ40及びルータ50間の情報の流れで、ダイレクトアクセス開始応答<D-10>までの各装置での処理は、図15を用いて説明した流れと同じであるため説明を省略する。
なお、携帯電話10からサービスサーバ30を介してDVR20からコンテンツ取得を行う場合とは、ステップS1810において携帯ダイレクトフラグがオフであると判断され、更に、ダイレクトアクセス管理サーバ40におけるトンネリングを行わない場合である。
まず、携帯電話10からサービスサーバ30を介してダイレクトにDVR20に対してコンテンツの検索を要求し、検索条件に合致するコンテンツのタイトルリストを取得する流れについて説明する。
DVR20は、ステップS1812でサービスサーバ30から送信されたダイレクトアクセス用URIおよび検索条件を含むコンテンツ検索要求<D-19>を受信すると(図12:ステップS1214)、このコンテンツ検索要求<D-19>に含まれるダイレクトアクセス用URIの正当性チェックを行い(図12:ステップS1215)、不正なURIであるなら、不正なURIであることを示すエラーコードをコンテンツ検索応答<D-19R>としてサービスサーバ30に送信する(図12:ステップS1216)。正当なURIである場合は、DVR20は、コンテンツ検索要求<D-19>内の検索条件に従って記憶部21の中から検索条件に合致するコンテンツを検索して、検索結果のコンテンツのタイトルリストとLocal URIリストを生成する。その後、DVR20は、生成したタイトルリストとLocal URIリストとをコンテンツ検索応答<D-19R>としてサービスサーバ30に送信する(図12:ステップS1217)。
サービスサーバ30は、DVR20より、コンテンツ検索応答<D-19R>としてコンテンツのタイトルリストおよびLocal URIリストを受信すると(図18:ステップS1813)、そのコンテンツのLocal URIリストを一時的に保存し(図18:ステップS1814)、携帯電話10に、コンテンツのタイトルリストを含むコンテンツ検索応答<D-20>を送信する(図18:ステップS1815)。
また、サービスサーバ30は、DVR20より、コンテンツ検索応答<D-19R>として不正なURIであることを示すエラーコードを受信した場合には(図18:ステップS1816)、そのエラーコードを、携帯電話10にコンテンツ検索応答<D-20>として送信する(図18:ステップS1817)。
携帯電話10は、サービスサーバ30から不正なURIであることを示すエラーコードをコンテンツ検索応答<D-20>を受信した場合には(図17:ステップS1728)、ダイレクトアクセスの失敗を示すメッセージを表示部を通してユーザに表示する(図17:ステップS1729)。また、携帯電話10は、サービスサーバ30よりコンテンツのタイトルリストをコンテンツ検索応答<D-20>として受信した場合には (図17:ステップS1725)、コンテンツ取得のための処理に進む。
次に、携帯電話10がサービスサーバ30を介してDVR20からコンテンツ取得するための処理の流れについて説明する。
携帯電話10は、サービスサーバ30から、コンテンツのタイトルリストを含むコンテンツ検索応答<D-20>を受信した場合(図17:ステップS1725)、受信したコンテンツのタイトルの一覧を表示部に表示し、表示されたタイトルの中からユーザによって選択されたコンテンツに対応するタイトルを抽出してコンテンツの取得を要求するための取得タイトルリストを作成する。
その後、携帯電話10は、ユーザ識別情報、選択コンテンツのタイトルリスト(取得タイトルリスト)、被制御機器の番号を含むコンテンツ取得要求<D-21>をサービスサーバ30に送信する(図17:ステップS1726)。サービスサーバ30は、コンテンツ取得要求<D-21>を受信すると(図18:ステップS1818)、そのコンテンツ取得要求<D-21>に含まれるタイトルリストに対応するコンテンツのLocal URIリストを記憶部31から検索し(図18 :ステップS1819)、ユーザによって選択されたコンテンツのタイトルに対応するLocal URIを抽出してコンテンツの取得を要求するためのLocal URIリストを作成する。
次に、サービスサーバ30は、利用可能なXMPPセッションIDが記憶部31に記憶されているか否かを調べる(図18:ステップS1820)。利用可能なXMPPセッションIDが記憶されていない場合、サービスサーバ30は、XMPPログイン要求<D-5>をダイレクトアクセス管理サーバに送信する(図18:ステップS1821)。サービスサーバ30は、ダイレクトアクセス管理サーバからのXMPPログイン応答<D-5R>を受信すると(図18:ステップS1822)、受信したXMPPログイン応答<D-5R>に含まれるXMPPセッションIDを記憶部31に保存する(図18:ステップS1823)。その後、サービスサーバ30は、ServiceID、制御機器・サービス管理ID、サービスURN、XMPPセッションID、コンテンツのLocal URIリストを含むダイレクトアクセス開始要求<D-22>をダイレクトアクセス管理サーバ40に送信する(図18:ステップS1824)。また、利用可能なXMPPセッションIDが既に記憶されている場合にも、サービスサーバ30は、ダイレクトアクセス開始要求<D-22>をダイレクトアクセス管理サーバ40に送信する(図18:ステップS1824)。ここでは、DVR20に対してコンテンツ取得を行おうとしているので、サービスURNはコンテンツ取得サービスを指定する情報となる。
ダイレクトアクセス管理サーバ40は、このダイレクトアクセス開始要求<D-22>を受信すると(図11:ステップS1101)、これに含まれているServiceIDと制御機器・サービス管理IDの組み合わせが記憶部41に記憶されているかどうかを判定し(図11:ステップS1102)、記憶されていない場合には、被制御機器の登録が必要であることを示すエラーコードをダイレクトアクセス開始応答<D-26>としてサービスサーバ30に送信する(図11:ステップS1103)。ServiceIDと制御機器・サービス管理IDの組み合わせが記憶部41に記憶されている場合には、ダイレクトアクセス管理サーバ40は、ダイレクトアクセス開始要求<D-22>に含まれているXMPPセッションIDが、ダイレクトアクセス開始要求<D-22>に含まれているServiceIDと制御機器・サービス管理IDとの組み合わせに対応付けられて記憶部41に記憶されているかどうかを判定する(図11:ステップS1104)。それが記憶されていない場合、ダイレクトアクセス管理サーバ40は、不正XMPPセッションIDであることを示すエラーコードをダイレクトアクセス開始応答<D-26>としてサービスサーバ30に送信する(図11:ステップS1105)。XMPPセッションIDがServiceIDと制御機器・サービス管理IDとの組み合わせに対応付けられて記憶部41に記憶されている場合、ダイレクトアクセス管理サーバ40は、ダイレクトアクセス開始要求<D-31>で指定されているサービスURNおよびLocal URIリストを含むダイレクトアクセス用URI取得要求<D-23>をDVR20に送信する(図11:ステップS1106)。
サービスサーバ30は、ダイレクトアクセス管理サーバ40から、不正XMPPセッションIDであることを示すエラーコードをダイレクトアクセス開始応答<D-26>として受信すると(図18:ステップS1825)、ステップS1820に戻って利用可能なXMPPセッションIDが記憶部31に記憶されているか否かを再び調べる。
DVR20は、ダイレクトアクセス管理サーバ40よりダイレクトアクセス用URI取得要求<D-23>を受信すると(図12:ステップS1201)、ダイレクトアクセス用のローカルポートの割当てを行う(図12:ステップS1202)。次に、DVR20は、ローカルIPアドレスおよびダイレクトアクセス用のローカルポートのポート番号を含む、ダイレクトアクセス用ポートのNAT設定要求<D-24>をルータ50に送信する(図12:ステップS1203)。
DVR20は、ルータ50より、グローバルIPアドレスおよびポート番号の取得エラーをサービスサーバ30からのNAT設定応答<D-24R>として受信した場合(図12:ステップS1204)、ステップS1201にて取得したサービスURNの指定情報に基づき、そのサービスURNがトンネリング可能なものであるかどうかを判定する(図12:ステップS1205)。DVR20は、トンネリング可能なサービスURNであると判定した場合には、トンネリングを指示するエラーコードをダイレクトアクセス用URI取得応答<D-25>としてダイレクトアクセス管理サーバ40に送信する(図12:ステップS1206)。サービスURNの指定情報がトンネリング可能なサービスURNではない場合には、空きポート獲得失敗を示すエラーコードをダイレクトアクセス用URI取得応答<D-25>としてダイレクトアクセス管理サーバ40に送信する(図12:ステップS1207)。
また、DVR20は、ダイレクトアクセス用ポートのNAT設定要求<D-24>に対して、ルータ50より、DVR20のローカルIPアドレス及びポート番号に対応付けられたグローバルIPアドレスおよびポート番号を、NAT設定応答<D-24R>として受信した場合には(図12:ステップS1208)、これらのグローバルIPアドレスおよびポート番号を用いてダイレクトアクセス用URIリストを作成し、このダイレクトアクセス用URIリストをダイレクトアクセス用URI取得応答<D-25>としてダイレクトアクセス管理サーバ40に送信する(図12:ステップS1209)。
ダイレクトアクセス管理サーバ40のXMPPサーバ43は、ダイレクトアクセス用URIリストをダイレクトアクセス用URI取得応答<D-25>として受信すると(図11:ステップS1107)、そのダイレクトアクセス用URIリストをダイレクトアクセス開始応答<D-26>としてサービスサーバ30に送信する(図11:ステップS1111)。
また、ダイレクトアクセス管理サーバ40は、トンネリングによるコンテンツ取得を指示するエラーコードをダイレクトアクセス用URI取得応答<D-25>として受信した場合には(図11:ステップS1109)、ダイレクトアクセス管理サーバ40内トンネリング用ポートの割当てを行い(図11:ステップS1110)、この割り当てたダイレクトアクセス管理サーバ40内トンネリング用ポートのポート番号とダイレクトアクセス管理サーバ40のグローバルIPアドレスを用いてダイレクトアクセス用URIリストを作成し、このダイレクトアクセス用URIリストを含むダイレクトアクセス開始応答<D-26>をサービスサーバ30へ送信する(図11:ステップS1111)。
以上により、サービスサーバ30は、DVR20からダイレクトにコンテンツを取得するためのダイレクトアクセスURIを取得したので、DVR20から選択されたコンテンツを取得する処理を開始する。なお、ここでは、サービスサーバ30がダイレクトアクセス開始応答<D-26>として受信したダイレクトアクセス用URIリストには、ユーザによって選択されたコンテンツのそれぞれに対応するダイレクトアクセスURIが格納されている。
サービスサーバ30は、ダイレクトアクセス用URIリストを含むダイレクトアクセス開始応答<D-26>を受信すると(図18:ステップS1826)、そのダイレクトアクセス用URIリストの中から取得処理を行うコンテンツに対応するダイレクトアクセス用URIを選択し、そのダイレクトアクセスURIを含むコンテンツ取得要求<D-27>をDVR20に送信する(図18:ステップS1827)。DVR20は、サービスサーバ30からのコンテンツ取得要求<D-27>を受信すると(図12:ステップS1218)、このコンテンツ取得要求<D-27>に含まれるダイレクトアクセス用URIの正当性チェックを行い(図12:ステップS1219)、不正なURIであるなら、不正なURIであることを示すエラーコードをコンテンツ取得応答<D-27R>としてサービスサーバ30に送信する(図12:ステップS1220)。正当なURIである場合は、DVR20は、そのダイレクトアクセス用URIで指定されているコンテンツをコンテンツ取得応答<D-27R>としてサービスサーバ30に送信する(図12:ステップS1221)。
サービスサーバ30は、DVR20からコンテンツをコンテンツ取得応答<D-27R>として受信すると(図18:ステップS1828)、このコンテンツをコンテンツ取得応答<D-28>として携帯電話10に送信し(図18:ステップS1829)、ダイレクトアクセス用URIリストに格納されているすべてのコンテンツの携帯電話10への送信が完了するまで、ステップS1827のコンテンツ取得要求<D-27>をDVR20に送信することを繰り返す(図18:ステップS1830)。携帯電話10は、コンテンツを含むコンテンツ取得応答<D-28>を受信する(図17:ステップS1727)と、受信したコンテンツを、表示部を通じてユーザに表示する。
また、サービスサーバ30は、DVR20から不正なURIであることを示すエラーコードをコンテンツ取得応答<D-27R>として受信した場合には(図18:ステップS1831)、このエラーコードをコンテンツ取得応答<D-28>として携帯電話10に送信する(図18:ステップS1832)。
以上で説明したように、携帯電話10は、DVR20へのダイレクトなアクセス、若しくは、サービスサーバ30による代理アクセスを利用して、DVR20からコンテンツを取得することができる。なお、上述の説明においては、コンテンツ取得サービスはトンネリング不可のサービスとして説明したが、リモート録画予約サービスで説明したトンネリングの処理をコンテンツ取得サービスに適用することにより、コンテンツ取得サービスにおいてもダイレクトアクセス管理サーバ40のXMPPサーバ43を介したトンネリングの処理を利用してDVR20からコンテンツを取得させることは可能である。
[5.ダイレクトアクセス終了]
次に、上述の各種処理が完了し、サービスサーバ30、ダイレクトアクセス管理サーバ40及びDVR20でダイレクトアクセスを終了させる処理に関して説明する。図20はダイレクトアクセス終了時の情報の流れを示すシーケンス図、図21はダイレクトアクセス終了時のサービスサーバ30の動作を示すフローチャート、図22はダイレクトアクセス終了時のダイレクトアクセス管理サーバ40の動作を示すフローチャート、図23はダイレクトアクセス終了時のDVR20の動作を示すフローチャートである。
サービスサーバ30は、携帯電話10より、ユーザ識別情報を含むダイレクトアクセス終了通知<C-1>を受信すると(図21:ステップS2101)、ServiceID、制御機器・サービス管理ID、XMPPセッションID、サービスURN、ダイレクトアクセス用URIを含むダイレクトアクセス終了通知<C-2>をダイレクトアクセス管理サーバ40に送信する(図21:ステップS2102)。
ダイレクトアクセス管理サーバ40は、ダイレクトアクセス終了通知<C-2>を受信すると(図22:ステップS2201)、サービスURNとダイレクトアクセス用URIを含むダイレクトアクセス終了通知<C-3>をDVR20に送信する(図22:ステップS2202)。このとき、ダイレクトアクセス終了通知<C-2>にダイレクトアクセスURIの指定が無い場合(図22:ステップS2206)、サービスURNのみを含むダイレクトアクセス終了通知<C-3>をDVR20に送信する(図22:ステップS2207)。
DVR20は、サービスURNとダイレクトアクセス用URIを含むダイレクトアクセス終了通知<C-3>を受信すると(図23:ステップS2301)、指定されたダイレクトアクセス用URIに関するグローバルIPアドレスおよびポート番号を含むダイレクトアクセス用ポートをクローズ<C-4>する(図23:ステップS2302)。
一方、サービスサーバ30は、ダイレクトアクセス終了通知<C-2>を送信後、携帯ダイレクトフラグの初期化を行う(図21:ステップS2103)。次いでServiceID、制御機器・サービス管理ID、XMPPセッションIDを含むXMPPログアウト通知<C-5>をダイレクトアクセス管理サーバ40に送信する(図21:ステップS2104)。最後にサービスサーバ30は、XMPPセッションIDエントリを消去する(図21:ステップS2105)。
ダイレクトアクセス管理サーバ40は、ServiceID、制御機器・サービス管理ID、XMPPセッションIDを含むXMPPログアウト通知<C-5>を受信すると(図22:ステップS2203)、該XMPPセッションIDに関するすべてのサービスURNのダイレクトアクセスの終了通知をDVR20に発行したかどうかを判断する(図22:ステップS2204)。ダイレクトアクセスの終了を通知すべきサービスURNが残っている場合には、サービスURNのみを指定し、ダイレクトアクセス用URIの指定がされていないダイレクトアクセス終了通知<C-3>をDVR20へ送信し(図22:ステップS2205)、全ての終了通知を発行したら、サービスサーバ30からのダイレクトアクセス終了通知<C-2>に待機する。
DVR20は、ダイレクトアクセス管理サーバ40からダイレクトアクセス用URIの指定されていないダイレクトアクセス終了通知<C-3>を受信すると(図23:ステップS2303)、ダイレクトアクセス終了通知<C-3>で指定されているサービスURNに関するすべてのポートをクローズする(図23:ステップS2304、S2305)。
以上の処理を実行することによって、サービスサーバ30、ダイレクトアクセス管理サーバ40及びDVR20でダイレクトアクセスを終了させる。
以上、本発明の実施形態のネットワークシステムの構成および動作を説明したが、サービスサーバ30の機能の一部は制御機器に移すことも可能である。例えば、サービスサーバ30がもっていた、SOAPインタフェースへのアクセス機能を制御機器(携帯電話10)がもつように変更することによって、XMPPログイン要求から始まるダイレクトアクセスの利用シーケンスは、制御機器(携帯電話10)とダイレクトアクセス管理サーバ40間で直接行える。
また、制御機器の機能と被制御機器の機能が一体になることも可能である。この場合、制御機器(携帯電話10)から被制御機器(DVR20)のXMPPセッションにアクセスする際に、SOAPサーバ42を経由しないで、XMPPセッション間でダイレクトアクセスに必要な情報を交換することになる。
さらに、被制御機器同士のダイレクトアクセスも行うことも可能である。この場合、被制御機器同士の関連付けは、制御機器を用いて行う。
以上説明した実施形態では、制御機器である携帯電話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に制御機器および被制御機器として接続される機器は、それぞれ他の機器の制御を行う部分と他の機器によって制御が行われる部分の両方を有するものであってもよい。
なお、本発明は、上述の実施形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。