(57)【特許請求の範囲】
【請求項１】
ネットワークに第１の機器および第２の機器とともに接続可能なサーバ装置において、
前記第１の機器との間で通信のためのセッションを設定する接続手段と、
前記第２の機器から、前記第１の機器へのアクセスの開始を要求するアクセス開始要求を受信する第１受信手段と、
前記第１受信手段で前記アクセス開始要求を受信したとき、前記第２の機器が前記第１の機器へアクセスするためのアクセス先の情報を前記第１の機器に要求する第１送信手段と、
前記第１送信手段による要求に応じて前記第１の機器からの応答を受信する第２受信手段と、
前記応答が第１のアクセス先情報が含まれた第１の応答であるとき、受信した前記第１のアクセス先情報を前記第２の機器に送信し、前記応答が前記第１のアクセス先情報が含まれていない第２の応答であるとき、前記第２の機器と前記第１の機器とを前記セッションを介して通信させるために、前記サーバ装置に前記第２の機器がアクセスするためのアクセス先を割り当て、前記割り当てたアクセス先を示す第２のアクセス先情報を前記第２の機器に送信する第２送信手段と
を具備する。
【請求項２】
請求項１記載のサーバ装置において、
前記第１の機器はルータを介して前記ネットワークに接続されており、
前記第１のアクセス先情報は、前記ルータから前記第１の機器に対して送信された、アクセス先を指定する情報である。
【請求項３】
請求項２記載のサーバ装置において、
第１のアクセス先情報は、前記ルータから前記第１の機器に対して送信された、前記ネットワークにおけるグローバルIPアドレスとポート番号とを含む情報である。
【請求項４】
請求項１記載のサーバ装置において、
第１のアクセス先情報は、前記ネットワークにおけるアドレスとポート番号とを含む情報である。
【請求項５】
請求項１記載のサーバ装置において、
第１のアクセス先情報は、前記ネットワークにおけるグローバルアドレスとポート番号とを含む情報である。
【請求項６】
請求項１記載のサーバ装置において、
前記第２のアクセス先情報は、前記サーバ装置のグローバルアドレスとポート番号とを含む情報である。
【請求項７】
請求項１記載のサーバ装置において、
前記第２のアクセス先情報に基づく前記第２の機器から第１の機器への要求を受信し、前記要求を前記第１の機器へ送信する制御手段を更に具備し、
前記接続手段は、前記第１の機器との間で、双方向の通信のセッションを設定し、
前記制御手段は、前記第２の機器から前記第１の機器への要求を、前記双方向の通信のセッションを介して前記第１の機器に送信する。
【請求項８】
請求項７記載のサーバ装置において、
前記接続手段は、前記第１の機器との間で、常時接続の双方向の通信のセッションを設定し、
前記制御手段は、前記第２の機器から前記第１の機器への要求を、前記常時接続の双方向の通信のセッションを介して前記第１の機器に送信する。
【請求項９】
請求項７記載のサーバ装置において、
前記接続手段は、前記第１の機器との間でXMPP（Ｅｘｔｅｎｓｉｂｌｅ  Ｍｅｓｓａｇｉｎｇ  ａｎｄ  Ｐｒｅｓｅｎｃｅ  Ｐｒｏｔｏｃｏｌ）を用いた通信セッションを設定する。
【請求項１０】
請求項１記載のサーバ装置において、
前記第１の送信手段は、前記第１受信手段で前記アクセス開始要求を受信したとき、前記接続手段で設定された前記セッションを介して、前記第２の機器が前記第１の機器へアクセスするためのアクセス先の情報を、前記第１の機器に要求する。
【請求項１１】
請求項１記載のサーバ装置において、
前記第２の機器は、第２の機器へのサービスを提供するサービスサーバ装置を介して前記サーバ装置に接続される。
【請求項１２】
ネットワークに第１の機器および第２の機器とともに接続可能なサーバ装置の機器間接続方法であって、
前記第１の機器との間で通信のためのセッションを設定するステップと、
前記第２の機器から、前記第１の機器へのアクセスの開始を要求するアクセス開始要求を受信するステップと、
前記アクセス開始要求を受信したとき、前記第２の機器が前記第１の機器へアクセスするためのアクセス先の情報を前記第１の機器に要求するステップと、
前記要求に応じて前記第１の機器からの応答を受信するステップと、
前記応答が第１のアクセス先情報が含まれた第１の応答であるとき、受信した前記第１のアクセス先情報を前記第２の機器に送信し、前記応答が前記第１のアクセス先情報が含まれていない第２の応答であるとき、前記第２の機器と前記第１の機器とを前記セッションを介して通信させるために、前記サーバ装置に前記第２の機器がアクセスするためのアクセス先を割り当て、前記割り当てたアクセス先を示す第２のアクセス先情報を前記第２の機器に送信するステップと
を具備する。
【請求項１３】
コンピュータを、ネットワークに第１の機器および第２の機器とともに接続可能なサーバ装置として機能させるプログラムであって、
前記プログラムは、
前記第１の機器との間で通信のためのセッションを設定する接続部と、
前記第２の機器から、前記第１の機器へのアクセスの開始を要求するアクセス開始要求を受信する第１受信部と、
前記第１受信部で前記アクセス開始要求を受信したとき、前記第２の機器が前記第１の機器へアクセスするためのアクセス先の情報を前記第１の機器に要求する第１送信部と、
前記第１送信部による要求に応じて前記第１の機器からの応答を受信する第２受信部と、
前記応答が第１のアクセス先情報が含まれた第１の応答であるとき、受信した前記第１のアクセス先情報を前記第２の機器に送信し、前記応答が前記第１のアクセス先情報が含まれていない第２の応答であるとき、前記第２の機器と前記第１の機器とを前記セッションを介して通信させるために、前記サーバ装置に前記第２の機器がアクセスするためのアクセス先を割り当て、前記割り当てたアクセス先を示す第２のアクセス先情報を前記第２の機器に送信する第２送信部
として前記コンピュータを機能させる。
【請求項１４】
コンピュータを、ネットワークに第１の機器および第２の機器とともに接続可能なサーバ装置として機能させるネットワークに第１の機器および第２の機器とともに接続可能なサーバ装置として機能させるプログラムが記録された記録媒体であって、
前記プログラムは、
前記第１の機器との間で通信のためのセッションを設定する接続部と、
前記第２の機器から、前記第１の機器へのアクセスの開始を要求するアクセス開始要求を受信する第１受信部と、
前記第１受信部で前記アクセス開始要求を受信したとき、前記第２の機器が前記第１の機器へアクセスするためのアクセス先の情報を前記第１の機器に要求する第１送信部と、
前記第１送信部による要求に応じて前記第１の機器からの応答を受信する第２受信部と、
前記応答が第１のアクセス先情報が含まれた第１の応答であるとき、受信した前記第１のアクセス先情報を前記第２の機器に送信し、前記応答が前記第１のアクセス先情報が含まれていない第２の応答であるとき、前記第２の機器と前記第１の機器とを前記セッションを介して通信させるために、前記サーバ装置に前記第２の機器がアクセスするためのアクセス先を割り当て、前記割り当てたアクセス先を示す第２のアクセス先情報を前記第２の機器に送信する第２送信部
として前記コンピュータを機能させる。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを通じて接続された機器間でのアクセスを管理するサーバ装置、サーバ装置の機器間接続方法、プログラム、および記録媒体に関するものである。
【背景技術】
【０００２】
インターネット上の制御機器から家庭内の被制御機器にアクセスする方法として、DDNS(Dynamic Domain Name System)方式や、メール方式が挙げられる。
【０００３】
DDNS方式は、家庭内の被制御機器が、DDNSサーバに自分のアドレスを登録しておき、インターネット側の制御機器からドメイン名およびポート番号の指定を受信することで、この制御機器のアクセスを可能とする仕組みである。
【０００４】
リアルタイムのコミュニケーションを実現するためのプロトコルとしてXMPP(eXtensible Messaging and Presence Protocol)がある(非特許文献1を参照)。このXMPPを用いたリアルタイム・コミュニケーションの形態の1つがインスタント・メッセージング(IM)である(非特許文献2を参照)。インスタント・メッセージング(IM)では、インターネット上でIMクライアント(IM交換を行うことのできる仲間)がオンラインかどうかを調べ、オンラインであれば、そのIMクライアントとの間で、チャットやファイル交換などを行うことができる。
【０００５】
また、他のコンピュータにあるデータやサービスを呼び出すためのプロトコルとしては、SOAP(Simple Object Access Protocol)がある(非特許文献3を参照)。SOAPによる通信では、XML（eXtensible Markup Language）文書にエンベロープと呼ばれる付帯情報が付いたメッセージをHTTP(Hyper Text Transfer Protocol)などのプロトコルで交換する。サービスを利用するクライアントとサービスを提供するサーバの双方がSOAPの生成・解釈エンジンを持つことで、異なる環境間でのオブジェクトの呼び出しを可能にしている。
【非特許文献１】「Extensible Messaging and Presence Protocol (XMPP): Core」, RFC3920, The Internet Engineering Task Force(IETF), 2004年10月
【非特許文献２】「Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence」, RFC3921, The Internet Engineering Task Force (IETF), 2004年10月
【非特許文献３】「SOAP Version 1.2」, W3C Recommendation, World Wide Web Consortium (W3C), 2003年6月
【発明の開示】
【発明が解決しようとする課題】
【０００６】
制御機器からネットワークを通じて被制御機器を制御できるネットワークシステムにおいて、被制御機器がルータを介してネットワークに接続されている場合、制御機器からのダイレクトアクセス用のポートをルータに設定する必要がある。ところが、ルータのポートがすべて使用中である場合など、ダイレクトアクセス用のポートを獲得できなかった場合には空きポート獲得エラーとなり、制御機器から被制御機器へのダイレクトアクセスがその間不可となるという問題があった。
【０００７】
本発明は、かかる実情を鑑み、制御側の機器からネットワークを通じて被制御側の機器を制御できるネットワークシステムにおいて、例えばルータにおいてダイレクトアクセス用のポートを獲得できなかった場合であっても、制御側の機器から被制御側の機器へのアクセスを保証することのできるサーバ装置、サーバ装置の機器間接続方法、プログラム、および記録媒体を提供することを目的としている。
【課題を解決するための手段】
【０００８】
本発明のサーバ装置は、ネットワークに第１の機器および第２の機器とともに接続可能なサーバ装置において、前記第１の機器との間で通信のためのセッションを設定する接続手段と、前記第２の機器から、前記第１の機器へのアクセスの開始を要求するアクセス開始要求を受信する第１受信手段と、前記第１受信手段で前記アクセス開始要求を受信したとき、前記第２の機器が前記第１の機器へアクセスするためのアクセス先の情報を前記第１の機器に要求する第１送信手段と、前記第１送信手段による要求に応じて前記第１の機器からの応答を受信する第２受信手段と、前記応答が第１のアクセス先情報が含まれた第１の応答であるとき、受信した前記第１のアクセス先情報を前記第２の機器に送信し、前記応答が前記第１のアクセス先情報が含まれていない第２の応答であるとき、前記第２の機器と前記第１の機器とを前記セッションを介して通信させるために、前記サーバ装置に前記第２の機器がアクセスするためのアクセス先を割り当て、前記割り当てたアクセス先を示す第２のアクセス先情報を前記第２の機器に送信する第２送信手段とを具備する。
【０００９】
本発明においては、第１の機器から、この第１の機器をネットワーク上でアクセスするために必要なアクセス先情報を取得できなかった場合に、サーバ装置と第１の機器との間に設定されている常時接続のセッションを用いた第１の機器との接続のための例えばポートを割り当て、このポートをアクセス先情報として第２の機器に送信し、第２の機器は、このポートのアクセス先情報にあててアクセスを要求する。したがって、この発明によれば、第１の機器から、この第１の機器をネットワーク上でアクセスするために必要なアクセス先情報を取得できなかった場合でも、第２の機器から第１の機器へアクセスの要求を行うことを保証できる。
【００１０】
本発明のサーバ装置において、前記第１の機器はルータを介して前記ネットワークに接続されており、前記第１のアクセス先情報は、前記ルータから前記第１の機器に対して送信された、アクセス先を指定する情報である。
【００１１】
本発明のサーバ装置において、第１のアクセス先情報は、前記ルータから前記第１の機器に対して送信された、前記ネットワークにおけるグローバルIPアドレスとポート番号とを含む情報である。
【００１２】
本発明のサーバ装置において、第１のアクセス先情報は、前記ネットワークにおけるアドレスとポート番号とを含む情報である。
【００１３】
本発明のサーバ装置において、第１のアクセス先情報は、前記ネットワークにおけるグローバルアドレスとポート番号とを含む情報である。
【００１４】
本発明のサーバ装置において、前記第２のアクセス先情報は、前記サーバ装置のグローバルアドレスとポート番号とを含む情報である。
【００１５】
本発明のサーバ装置において、前記第２のアクセス先情報に基づく前記第２の機器から第１の機器への要求を受信し、前記要求を前記第１の機器へ送信する制御手段を更に具備し、前記接続手段は、前記第１の機器との間で、双方向の通信のセッションを設定し、前記制御手段は、前記第２の機器から前記第１の機器への要求を、前記双方向の通信のセッションを介して前記第１の機器に送信する。
【００１６】
本発明のサーバ装置において、前記接続手段は、前記第１の機器との間で、常時接続の双方向の通信のセッションを設定し、前記制御手段は、前記第２の機器から前記第１の機器への要求を、前記常時接続の双方向の通信のセッションを介して前記第１の機器に送信する。
【００１７】
本発明のサーバ装置において、前記接続手段は、前記第１の機器との間でXMPP（Ｅｘｔｅｎｓｉｂｌｅ  Ｍｅｓｓａｇｉｎｇ  ａｎｄ  Ｐｒｅｓｅｎｃｅ  Ｐｒｏｔｏｃｏｌ）を用いた通信セッションを設定する。
【００１８】
本発明のサーバ装置において、前記第１の送信手段は、前記第１受信手段で前記アクセス開始要求を受信したとき、前記接続手段で設定された前記セッションを介して、前記第２の機器が前記第１の機器へアクセスするためのアクセス先の情報を、前記第１の機器に要求する。
【００１９】
本発明のサーバ装置において、前記第２の機器は、第２の機器へのサービスを提供するサービスサーバ装置を介して前記サーバ装置に接続される。
【発明の効果】
【００２０】
本発明によれば、第１の機器から、この第１の機器をネットワーク上でアクセスするために必要な指定情報を取得できなかった場合でも、第２の機器から第１の機器へアクセスの要求を行うことを保証できる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施の形態を図面に基づき説明する。
【００２２】
図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の登録時の動作を説明する。
【００５３】
DVR20は、ユーザによる利用前にダイレクトアクセス管理サーバ40において自身の機器認証を次のように行う。
【００５４】
まず、DVR20は自動接続フラグの値をチェックする(図6:ステップS601)。被制御機器のダイレクトアクセス管理サーバ40への登録前には自動接続フラグの値はオフである。この場合DVR20は自身に予め設定されている認証方式の情報および機器認証情報を含む機器認証要求<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は、記憶部21に被制御機器登録用パスワードが保存されているかどうかを判断する(図6:ステップS605)。被制御機器登録用パスワードが保存されていない場合には動作を終了し、被制御機器登録用パスワードが保存されている場合にはステップS609へ移行する。機器認証継続IDを取得した直後は被制御機器登録用パスワードが保存されていないので、この場合には動作を終了することとなる。ここまでにおいて、被制御機器であるDVR20は機器認証継続ID、機器認証継続IDの有効期限の情報、機器認証情報の組み合わせを記憶部21に記憶し、ダイレクトアクセス管理サーバ40は機器認証継続IDと機器認証情報との組み合わせを記憶部41に記憶している。
【００５８】
[1-3.制御機器・サービス管理IDと被制御機器管理IDとの紐付け]
【００５９】
次に、制御機器・サービス管理IDと被制御機器管理IDとを関連付けてダイレクトアクセス管理サーバ40に登録する動作を行う。携帯電話10において、ユーザからのワンタイムパスワード送信要求が入力される(図3:ステップS305)。携帯電話10は、このユーザからのワンタイムパスワード送信要求を受けると記憶部11に記憶されている被制御機器登録用パスワードを、例えば、赤外線やUSBなどのインタフェース[IF-03]を使って、被制御機器であるDVR20にワンタイムパスワード<R-5>として渡す(図3:ステップS306)。被制御機器登録用パスワードの渡し方は、他にも、非接触ICカードを介した受け渡し、Bluetooth(商標)、無線LANなどによる無線伝送など様々な方式が想定されるが、制御機器である携帯電話10から被制御機器であるDVR20に対して被制御機器登録用パスワードを渡すことができさえすればどのような渡し方であっても構わない。この後、携帯電話10は記憶部11から被制御機器登録用パスワードを消去する(図3:ステップS307)。
【００６０】
DVR20は、携帯電話10から被制御機器登録用パスワード<R-5>を受信すると(図6:ステップS607)、この被制御機器登録用パスワードを記憶部21に保存する(図6:ステップS608)。続いて、DVR20は、記憶部21に記憶されている機器認証継続IDと、携帯電話10より受信した被制御機器登録用パスワードを含む被制御機器登録要求<R-6>をダイレクトアクセス管理サーバ40内のSOAPサーバ42に送信する(図6:ステップS609)。これによりDVR20は、ダイレクトアクセス管理サーバ40に、被制御機器登録用パスワードを送信してきた携帯電話10と関連付けて登録することを要求する。
【００６１】
ダイレクトアクセス管理サーバ40内のSOAPサーバ42は、DVR20から被制御機器登録要求<R-6>を受信すると(図5:ステップS519)、この被制御機器登録要求<R-6>に含まれる機器認証継続IDが記憶部41に保存されているものと一致するかどうかのチェックと機器認証継続IDの有効期限のチェックを行う(図5:ステップS520)。これらのチェックでNGが判定された場合、すなわち機器認証継続IDが一致しないか、もしくは機器認証継続IDの有効期限が切れている場合には、機器認証が必要であることを示すエラーコードを含む被制御機器登録応答<R-6R>をDVR20へ送信する(図5:ステップS528)。DVR20は、このエラーコードを含む被制御機器登録応答<R-6R>を受信すると(図6:ステップS622)、ステップS602に戻って機器認証のための処理を繰り返す。
【００６２】
また、SOAPサーバ42は、ステップS520のチェック結果がOKの場合、すなわち機器認証継続IDが記憶部41に記憶されているものと一致し、かつ機器認証継続IDの有効期限が切れていない場合、DVR20から受信した被制御機器登録要求<R-6>に含まれる被制御機器登録用パスワードが記憶部41に保存されているものと一致するかどうかのチェックとその被制御機器登録用パスワードの有効期限のチェックを行う(図5:ステップS521)。これらのチェックでNGが判定された場合、すなわち被制御機器登録用パスワードが一致しないか、もしくは被制御機器登録用パスワードの有効期限が切れている場合、SOAPサーバ42は、被制御機器登録要求<R-6>に含まれる被制御機器登録用パスワードが無効であることを示すエラーコードを被制御機器登録応答<R-6R>としてDVR20へ送信する(図5:ステップS527)。DVR20は、このエラーコードを被制御機器登録応答<R-6R>として受信すると(図6:ステップS620)、DVR20に接続されたＴＶの画面等を通して、被制御機器登録用パスワードの再取得を行うように、ユーザに対してエラーメッセージの表示を行って(図6:ステップS621)、処理を終了する。
【００６３】
また、SOAPサーバ42は、ステップS521のチェック結果がOKの場合、すなわち被制御機器登録用パスワードが記憶部41に記憶されているものと一致し、かつ被制御機器登録用パスワードの有効期限が切れていない場合には、記憶部41に記憶されている情報を参照して、被制御機器登録要求<R-6>に含まれている機器認証継続IDに被制御機器管理IDが割り当てられているかどうかの判断を行う(図5:ステップS521-1)。機器認証継続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>を受信すると（図４：ステップＳ410）、被制御機器の登録が完了したことを携帯電話10に通知する（図４：ステップＳ411）。被制御機器の登録が完了したことをサービスサーバ30から携帯電話10に通知する方法としては、たとえば、電子メールや、携帯電話10との間でその他の方法で通信を行うために用意されたアプリケーション等がある。
【００６５】
DVR20は、SOAPサーバ42より現在紐付けが完了しているサービスの数を被制御機器登録応答<R-6R>として受信すると(図6:ステップS610)、自動接続フラグをオンにセットし(図6:ステップS611)、被制御機器の登録が完了したことを表すメッセージを表示する(図6:ステップS612)。続いて、DVR20は、記憶部21に保存されている被制御機器登録用パスワードを消去する(図6:ステップS613)。その後、DVR20は、ダイレクトアクセス管理サーバ40のXMPPサーバ43との間で常時接続セッションを確立するために、機器認証継続IDを含むXMPPログイン情報取得要求<D-0-1>をダイレクトアクセス管理サーバ40内のSOAPサーバ42に送信する(図6:ステップS614)。
【００６６】
[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)オプションを加えた情報をXMPPログイン情報取得応答<D-0-1R>としてDVR20に送信する(図10:ステップS1007)。
【００７０】
DVR20は、ダイレクトアクセス管理サーバ40内のSOAPサーバ42からFull JID(D)、XMPPログインパスワード等を含むXMPPログイン情報取得応答<D-0-1R>を受信すると(図6:ステップS615)、Full JID(D)、XMPPログインパスワードを含むXMPPログイン認証要求<D-0-2>を、ダイレクトアクセス管理サーバ40内のXMPPサーバ43に送信する(図6:ステップS616)。
【００７１】
ダイレクトアクセス管理サーバ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-1R>としてDVR20に送信する(図10:ステップS1010)。また、Full JID(D)。XMPPログインパスワードおよび有効期限のチェックがすべてOKならば、ダイレクトアクセス管理サーバ40内のXMPPサーバ43は、XMPPログイン許可を示すコードをXMPPログイン認証応答<D-0-2R>としてDVR20に送信する(図10:ステップS1011)。
【００７２】
DVR20は、ダイレクトアクセス管理サーバ40よりXMPPログイン失敗を示すエラーコードをXMPPログイン認証応答<D-0-2R>として受信すると(図6:ステップS619)、ステップS614に戻って、再度XMPPログイン情報の取得要求を行う。すなわち、XMPPログインパスワードの有効期限が切れている可能性があるため、再度、XMPPログイン情報の取得要求処理を行う。また、ダイレクトアクセス管理サーバ40よりXMPPログイン許可を示すコードをXMPPログイン認証応答<D-0-2R>として受信すると(図6:ステップS618)、DVR20は、XMPPログイン処理が完了する。
【００７３】
なお、DVR20は、ダイレクトアクセス管理サーバ40内のSOAPサーバ42より、機器認証が必要であることを示すエラーコードをXMPPログイン情報取得応答<D-0-1R>として受信した場合には(図6:ステップS617)、自機が正常にダイレクトアクセス管理サーバ40に登録されていないか、もしくは、機器認証継続IDの有効期限が切れている可能性があるため、再度、自身に予め設定されている認証方式の情報および機器認証情報を含む機器認証要求<R-0>をダイレクトアクセス管理サーバ40内のSOAPサーバ42に送信して自身の機器認証をやりなおす(図6:ステップS602)。
【００７４】
上記のように、このネットワークシステムでは、ダイレクトアクセス管理サーバ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を用いてもよい。
【００７５】
ところで、ステップS611で自動接続フラグがオンにセットされることにより、DVR20は次回の接続時、例えばDVR20の電源が一旦オフされその後に再投入された時、或いはXMPPサーバ43とのセッション切断後のセッションの再確立の時には、ステップS601の自動接続フラグのチェックの後、ステップS614のXMPPログイン情報取得要求<D-0-1>の送信から処理を開始する。すなわち、DVR20は再接続時には機器認証のための処理、携帯電話10からの被制御機器登録用パスワードの取得、被制御機器登録のための処理をスキップしてXMPPログインのための処理に入る。これにより、DVR20は再接続時には、XMPPログインのための処理を行うだけで、XMPPサーバ43の間での接続セッションを確立することができる。
【００７６】
以上で、制御機器である携帯電話10の制御対象として、被制御機器であるDVR20を関連付けるための処理が完了する。以下では、関連付けられた2つの機器の間で、携帯電話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との間で確立されている接続セッションを識別するＩＤが記憶部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>までの各装置での処理は図７を用いて説明した流れと同じであるため説明を省略する。
【０１１３】
携帯電話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>までの各装置での処理は図７を用いて説明した流れと同じであるため説明を省略する。
【０１２１】
携帯電話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>までの各装置での処理は図７を用いて説明した流れと同じであるため説明を省略する。
【０１３０】
携帯電話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と関連付けて記憶する。また、制御機器管理ＩＤは、ダイレクトアクセス管理サーバ40にて生成してもよいし、制御機器が自身を識別することのできるＩＤを公開可能なものであるなら、この制御機器から与えられたＩＤを、被制御機器管理IDと関連付けられる制御機器管理ＩＤとして用いてもよい。このことは、被制御機器管理IDについても同様であり、被制御機器が自身を識別することのできるＩＤを公開可能なものであるなら、この被制御機器から与えられたＩＤを、制御機器管理IDと関連付けられる被制御機器管理IDとして用いてもよい。また、ダイレクトアクセス管理サーバ40に制御機器および被制御機器として接続される機器は、それぞれ他の機器の制御を行う部分と他の機器によって制御が行われる部分の両方を有するものであってもよい。
【０２２０】
なお、本発明は、上述の実施形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【図面の簡単な説明】
【０２２１】
【図１】本発明の一の実施形態にかかるネットワークシステムの全体的な構成を示す図である。
【図２】図1のネットワークシステムにおいて制御機器とサービスとの組み合わせの登録と被制御機器の登録を行う際の情報の流れを示すシーケンス図である。
【図３】図2の登録時の制御機器の動作を示すフローチャートである。
【図４】図2の登録時のサービスサーバの動作を示すフローチャートである。
【図５】図2の登録時のダイレクトアクセス管理サーバの動作を示すフローチャートである。
【図６】図2の登録時のDVRの動作を示すフローチャートである。
【図７】図1のネットワークシステムにおいて被制御機器のXMPPログインおよびリモート録画予約時の情報の流れを示すシーケンス図である。
【図８】リモート録画予約に関する携帯電話の動作を示すフローチャートである。
【図９】リモート録画予約に関するサービスサーバの動作を示すフローチャートである。
【図１０】被制御機器のXMPPログインおよびリモート録画予約およびコンテンツ取得に関するダイレクトアクセス管理サーバの動作を示すフローチャートである。
【図１１】リモート録画予約およびコンテンツ取得に関するダイレクトアクセス管理サーバの動作を示すフローチャートである。
【図１２】リモート録画予約およびコンテンツ取得に関するDVRの動作を示すフローチャートである。
【図１３】図1のネットワークシステムにおいて携帯電話からのダイレクトでのリモート録画予約を行う場合の情報の流れを示すシーケンス図である。
【図１４】図1のネットワークシステムにおいて携帯電話からのトンネリングのリモート録画予約を行う場合の情報の流れを示すシーケンス図である。
【図１５】図1のネットワークシステムにおいて携帯電話からのダイレクトアクセスによるコンテンツ取得時の情報の流れを示すシーケンス図である。
【図１６】サービスサーバからのダイレクトアクセスによるコンテンツ取得時の情報の流れを示すシーケンス図である。
【図１７】コンテンツ取得時の携帯電話の動作を示すフローチャートである。
【図１８】コンテンツ取得時のサービスサーバの動作を示すフローチャートである。
【図１９】コンテンツ取得時のサービスサーバの動作を示すフローチャートである。
【図２０】図1のネットワークシステムにおいてダイレクトアクセス終了時の情報の流れを示すシーケンス図である。
【図２１】ダイレクトアクセス終了時のサービスサーバの動作を示すフローチャートである。
【図２２】ダイレクトアクセス終了時のダイレクトアクセス管理サーバの動作を示すフローチャートである。
【図２３】ダイレクトアクセス終了時のDVRの動作を示すフローチャートである。
【図２４】Full JIDの構成を示す図である。
【図２５】Full JIDの別の構成を示す図である。
【図２６】サービスサーバを介さない携帯電話からのトンネリングのリモート録画予約を行う場合の情報の流れを示すシーケンス図である。
【符号の説明】
【０２２２】
10   携帯電話(制御機器)
11   記憶部
20   DVR(被制御機器)
21   記憶部
30   サービスサーバ 
31   記憶部
40   ダイレクトアクセス管理サーバ
41   記憶部
42   SOAPサーバ
43   XMPPサーバ
50   ルータ
【図１】
0004747939.tif 000002
【図２】
0004747939.tif 000003
【図３】
0004747939.tif 000004
【図４】
0004747939.tif 000005
【図５】
0004747939.tif 000006
【図６】
0004747939.tif 000007
【図７】
0004747939.tif 000008
【図８】
0004747939.tif 000009
【図９】
0004747939.tif 000010
【図１０】
0004747939.tif 000011
【図１１】
0004747939.tif 000012
【図１２】
0004747939.tif 000013
【図１３】
0004747939.tif 000014
【図１４】
0004747939.tif 000015
【図１５】
0004747939.tif 000016
【図１６】
0004747939.tif 000017
【図１７】
0004747939.tif 000018
【図１８】
0004747939.tif 000019
【図１９】
0004747939.tif 000020
【図２０】
0004747939.tif 000021
【図２１】
0004747939.tif 000022
【図２２】
0004747939.tif 000023
【図２３】
0004747939.tif 000024
【図２４】
0004747939.tif 000025
【図２５】
0004747939.tif 000026
【図２６】
0004747939.tif 000027