(57)【特許請求の範囲】
【請求項１】
通信ネットワークを介して接続されるユーザ端末と中継サーバと記録装置とを用いて、前記ユーザ端末から前記通信ネットワーク上の録画予約サイトに接続して前記記録装置の録画予約を行う際、前記中継サーバは、前記録画予約サイトを介して前記ユーザ端末から送信された既に登録されているユーザＩＤとパスワードとで認証を行い録画予約を行うためのユーザ端末判別方法であって、
前記中継サーバが、認証したユーザ端末に対しアクセスキーを生成し、前記アクセスキーを中継サーバ内の記憶部に記憶すると共に前記アクセスキーを含むデータを記録装置に送るステップと、
前記記録装置が、操作メニューによって発信するメソッドに前記アクセスキーが含まれるように設定した前記操作メニューのデータを生成し、生成した前記操作メニューのデータを前記中継サーバ経由で前記ユーザ端末に送るステップと、
前記中継サーバが、前記ユーザ端末による前記操作メニューの操作によって送られた前記メソッドに付加されたキーと、前記記憶部に記憶している前記アクセスキーを比較し、ユーザ端末を判別するステップと
を有することを特徴とする、ユーザ端末判別方法。
【請求項２】
前記中継サーバは、前記記憶部に前記アクセスキーを記憶していない場合、前記ユーザ端末からの接続を許可し、前記アクセスキーを記憶している場合、前記ユーザ端末による前記操作メニューの操作によって送られた前記メソッドに付加されたキーと記憶している前記アクセスキーを比較し、一致した場合接続を許可し、一致しない場合接続を許可しないことを特徴とする、
請求項１記載のユーザ端末判別方法。
【請求項３】
前記ユーザ端末が前記記録装置の生成した前記操作メニューから再ログインした場合、前記中継サーバは新たなアクセスキーを生成せず、前記操作メニューの操作によって送られた前記メソッドに付加されているキーをアクセスキーとして前記記憶部に記憶することを特徴とする、
請求項１または請求項２記載のユーザ端末判別方法。
【請求項４】
前記中継サーバは、接続した前記ユーザ端末から所定の時間を越えて通信がない場合、前記アクセスキーを前記記憶部に記憶しない状態とし、前記ユーザ端末との更新を遮断することを特徴とする、
請求項１〜３のいずれか１項に記載のユーザ端末判別方法。
【請求項５】
前記中継サーバと前記記録装置との間に設けられたルータに介在するＮＡＴを越え、前記ユーザ端末と前記記録装置との間の通信の確立を図るＮＡＴ越えサーバを用い、
前記中継サーバは、前記記録装置に所定の期間毎に定期的にＨＴＴＰパケットを送信することで、前記ＮＡＴ越えサーバを経由した前記中継サーバと前記記録装置とのＴＣＰ接続を維持することを特徴とする、
請求項１〜４のいずれか１項に記載のユーザ端末判別方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記録装置の遠隔操作システムにおけるユーザ端末判別方法に関する。
【背景技術】
【０００２】
従来、携帯電話やパソコンなどのユーザ端末を用いてサーバと接続し、録画予約サイトを使って番組表から録画予約をすることが行われている。ユーザは、携帯電話やパソコンなどのユーザ端末で、インターネット上にある録画予約サイトにＨＴＴＰ（Hyper  Text  Transfer  Protocol）で接続して、携帯電話上に番組表を表示する。番組表の中から予約したい番組を見つけ、番組に表示されている“メール録画予約”というボタンを押す。ボタンが押されると、録画予約サイト（あるいは、サイトを管理しているサーバ）から、予約する番組の予約情報（放送日や開始・終了時刻、チャンネル、番組タイトルなど）を記述したメール（以下、予約メール）が録画予約サイトにユーザ登録する際に予め設定された記録装置のメールアドレス宛てに送信され、メールサーバに届くようにしている
【０００３】
このとき、複数のユーザが記録装置を共有している場合、録画予約サイト管理サーバに録画の予約状況を参照用予約データとして保持する録画予約データベースを設け、録画装置でなされた予約状況を受信し、その予約状況に基づいて参照用予約データを更新する同期処理部と、端末から予約の設定要求を受信する予約設定受信部と、予約設定要求と参照用予約データ内の予約状況との整合性を判断する予約受理判断部を用いて、整合性がない場合、端末へ警告を通知し、整合性がある場合に、予約設定要求を参照用予約データに反映した上で参照用予約データを録画装置に送信するようにして確実な録画予約を行うシステムが提案されている（例えば、特許文献１参照。）。
【０００４】
【特許文献１】特開２００２−１５８９５１公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、上記のシステムにおいて、1台の記録装置に対して複数のユーザ端末が同時に接続して予約操作を行うと、予約のリソースが破壊されてしまうことを回避するためには、中継サーバは、先にログインしたユーザ端末がログアウトするまで、他の端末が接続できないように制御する。この時、中継サーバは、ログインした端末のＩＰアドレスを記憶し、このＩＰアドレスの機器がログアウトするまでは、他の端末のログインを認めないようにしている。しかしながら、この判別方法は、パソコンのようにＩＰアドレスが一定期間変わらない機器では有効だが、携帯電話のように通信する度にＩＰアドレスが変化するような機器には不向きである。
【０００６】
携帯電話でＩＰアドレスが変わる現象は、インターネットのホームページを閲覧する操作（以下、ブラウジング）とブラウジング以外の操作（メールなど）を画面上で切り替えて行う時に発生するものである。例えば、ＮＴＴドコモやvodafone対応の携帯電話を使って、携帯電話のブラウザで中継サーバにログインし、ログアウトせずに一旦ブラウザを閉じてメールチェックなどを行う。この後再び、ブラウザで中継サーバにログインすると、携帯電話のＩＰアドレスが最初のログイン時と変わってしまう。そのため中継サーバは他のユーザ端末がログインしてきたと勘違いし、ログインを拒否してしまう。結果的に、ユーザ端末が中継サーバにログインできない状態に陥ってしまう。このような操作は、携帯では頻繁に行われるため発生頻度も非常に高いものである。
【０００７】
これを解決するために、記録装置あるいは中継サーバでは、ある端末がログインした後に、無操作状態が一定時間続いたら、強制的にログアウトする仕組みを設けている。しかし、この場合も無操作状態が確定するまでは、同じ端末がログアウトをせずに再ログインすることはできない。このように、従来の遠隔操作システムにおいて、複数のユーザが携帯電話を使用して予約録画を行おうとすると不具合が発生し、確実な録画予約を行うことができないという問題があった。
【０００８】
本発明は、以上の点に鑑みなされたもので、記録装置あるいは中継サーバに接続されたユーザ端末をＩＰアドレス以外で判別する仕組みを新たに設け、効率よく確実な録画予約、及び録画予約修正を行うことができるユーザ端末判別方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、上記問題を解決するために、以下の１）〜５）に記載の手段よりなる。
すなわち、
１）通信ネットワークを介して接続されるユーザ端末と中継サーバと記録装置とを用いて、前記ユーザ端末から前記通信ネットワーク上の録画予約サイトに接続して前記記録装置の録画予約を行う際、前記中継サーバは、前記録画予約サイトを介して前記ユーザ端末から送信された既に登録されているユーザＩＤとパスワードとで認証を行い録画予約を行うためのユーザ端末判別方法であって、前記中継サーバが、認証したユーザ端末に対しアクセスキーを生成し、前記アクセスキーを中継サーバ内の記憶部に記憶すると共に前記アクセスキーを含むデータを記録装置に送るステップと、前記記録装置が、操作メニューによって発信するメソッドに前記アクセスキーが含まれるように設定した前記操作メニューのデータを生成し、生成した前記操作メニューのデータを前記中継サーバ経由で前記ユーザ端末に送るステップと、前記中継サーバが、前記ユーザ端末による前記操作メニューの操作によって送られた前記メソッドに付加されたキーと、前記記憶部に記憶している前記アクセスキーを比較し、ユーザ端末を判別するステップとを有することを特徴とする、ユーザ端末判別方法。
２）前記中継サーバは、前記記憶部に前記アクセスキーを記憶していない場合、前記ユーザ端末からの接続を許可し、前記アクセスキーを記憶している場合、前記ユーザ端末による前記操作メニューの操作によって送られた前記メソッドに付加されたキーと記憶している前記アクセスキーを比較し、一致した場合接続を許可し、一致しない場合接続を許可しないことを特徴とする、１）記載のユーザ端末判別方法。
３）前記ユーザ端末が前記記録装置の生成した前記操作メニューから再ログインした場合、前記中継サーバは新たなアクセスキーを生成せず、前記操作メニューの操作によって送られた前記メソッドに付加されているキーをアクセスキーとして前記記憶部に記憶することを特徴とする、１）または２）記載のユーザ端末判別方法。
４）前記中継サーバは、接続した前記ユーザ端末から所定の時間を越えて通信がない場合、前記アクセスキーを前記記憶部に記憶しない状態とし、前記ユーザ端末との更新を遮断することを特徴とする、１）〜３）のいずれか１項に記載のユーザ端末判別
方法。
５）前記中継サーバと前記記録装置との間に設けられたルータに介在するＮＡＴを越え、前記ユーザ端末と前記記録装置との間の通信の確立を図るＮＡＴ越えサーバを用い、前記中継サーバは、前記記録装置に所定の期間毎に定期的にＨＴＴＰパケットを送信することで、前記ＮＡＴ越えサーバを経由した前記中継サーバと前記記録装置とのＴＣＰ接続を維持ことを特徴とする、１）〜４）のいずれか１項に記載のユーザ端末判別方法。
【発明の効果】
【００１０】
本発明のユーザ端末判別方法によれば、記録装置あるいは中継サーバは、複数のユーザからの接続を防止することができる。また、記録装置の制御対象機器のリソース破壊を防ぐことができるという効果を奏する。
また、記録装置あるいは中継サーバは、携帯電話のようなＩＰアドレスが変化するユーザ端末が接続しても、ユーザ判別を適切に行うことができる。
さらに、記録装置あるいは中継サーバは、同一のユーザ端末の再ログイン（ここでは、ログイン中にログアウトを行わずに再びログインすることを示す）を許可することができ、同一のユーザ端末が記録装置あるいは中継サーバにアクセスできないという問題を解決できるものである。
【発明を実施するための最良の形態】
【００１１】
以下、本発明に係るユーザ端末判別方法の発明を実施するための最良の形態につき、好ましい実施例により説明する。
記録装置はＶＤＲ（Video  Disc  Recorder）を例に説明する。図１は、インターネットに常時接続されたＶＤＲ１０を、外出先から携帯電話やパソコンなど（以下、ユーザ端末）を用いて、録画予約を行う仕組み（以下、遠隔操作システム）を示したものである。図示したＶＤＲ１０は、ブロードバンドルータ（以下、ルータ）やADSLモデム（図示しない）を経由してインターネットに接続されている。
【００１２】
同図に示すように、インターネットに常時接続されたＶＤＲ１０は、ブロードバンドルータ１１（以下、ルータ）を経由してインターネットに接続されている。さらにインターネットに接続されているユーザ端末１３とルータ１１との間にＨＴＴＰサーバである中継サーバ１２を設置する。この中継サーバ１２でＬＡＮ内機器であるＶＤＲ１０とユーザ端末１３間の通信を中継する。これにより「ルータの穴あけ」などの特殊な設定が要らない遠隔操作システムを提供することができる。
【００１３】
ルータ１１は、ＶＤＲ１０などのLAN内機器から送信されたパケットを受け取り、パケット内の送信元ＩＰアドレス領域に設定されたＶＤＲ１０のＩＰアドレス（プライベートＩＰアドレス）をグローバルＩＰアドレスに置き換えてインターネットに送信している。このアドレス変換の仕組みをＮＡＴ（Network Address Translator）という。
【００１４】
このＮＡＴがルータ１１に介在しているために、インターネット側の機器から直接ＬＡＮ内機器へ通信することはできない。ただし、ＩＰマスカレードに対応したルータならば、「ルータの穴あけ」（例えば、ポート８０に来たパケットをあらかじめ登録した機器に送るという設定）を行えば、インターネットからＮＡＴ越えが可能である。しかし、このようなルータ１１の設定は、一般ユーザやネットワーク初心者にとっては、敷居が高いものである。
そこで、同図に示すように、ＬＡＮ内機器（ＶＤＲ１０）とインターネット機器（ユーザ端末１３）の間にＨＴＴＰサーバ（以下、中継サーバ）を設置する。この中継サーバでＬＡＮ内機器（ＶＤＲ１０）とユーザ端末１３間の通信を中継する。これにより「ルータの穴あけ」などの特殊な設定が要らない遠隔操作システムを提供することができる。
【００１５】
中継サーバを用いたＮＡＴ動作の通信手順を図１の番号に沿って説明する。
（１）まずＶＤＲ１０から中継サーバにＴＣＰ接続し、認証を要求するパケットを送る。
（２）中継サーバは、正規のＶＤＲ１０かどうか確認し認証許可パケットを送る。
（３）ＶＤＲ１０は、認証許可パケットを受信すると、ＴＣＰ接続を切断せずに受信状態で待機する。中継サーバは、ルータ１１でＴＣＰ接続が切断されないように、ＶＤＲ１０に定期的にＨＴＴＰパケットを送る。
（４）ユーザ端末１３が中継サーバに接続する。
（５）中継サーバから図２のログイン画面が送られてくる。
（６）ユーザ端末１３では、ユーザＩＤとパスワードを入力してログインする。
（７）中継サーバは、ユーザＩＤとパスワードでユーザ認証を行い、正規のユーザと認めると図３のような操作メニューを送る。
（８）ユーザ端末１３では、図３の操作メニューから操作項目を選択する。例えば、予約一覧を選択すると、予約一覧を要求するＨＴＴＰリクエストが送信される。
（９）中継サーバはこのパケットを受信して、受信待機しているＶＤＲ１０へ送信する。
（１０）ＶＤＲ１０は予約一覧のＨＴＭＬファイルを生成する。
（１１）中継サーバへ送り返す。
（１２）中継サーバはこのパケットを受信して、ユーザ端末１３に送る。ユーザ端末１３には図４のような予約一覧が表示される。
【００１６】
このようにＶＤＲ１０とユーザ端末１３の間に中継サーバ１２を置くことで、ＮＡＴを越えた通信が可能となり、録画予約の操作をダイレクトに行うことができるようになる。
【００１７】
上述のシステムにおいて、1台のＶＤＲ１０に対して複数のユーザ端末１３が同時に接続して予約操作を行うと、予約のリソースが破壊されてしまうことがある。これを回避するためには、中継サーバ１２は、先にログインしたユーザ端末１３がログアウトするまで、他の端末が接続できないように制御する。この時、中継サーバ１２は、ログインした端末のＩＰアドレスを記憶し、このＩＰアドレスの機器がログアウトするまでは、他の端末のログインを認めないようにすればよい。
【００１８】
しかし、この判別方法は、パソコンのようにＩＰアドレスが一定期間変わらない機器では有効だが、携帯電話のように通信する度にＩＰアドレスが変化するような機器には不向きである。携帯電話でＩＰアドレスが変わる現象は、インターネットのホームページを閲覧する操作（以下、ブラウジング）とブラウジング以外の操作（メールなど）を画面上で切り替えて行う時に発生する。
【００１９】
例えば、ＮＴＴドコモやvodafone対応の携帯電話を使って、携帯電話のブラウザで中継サーバ１２にログインし、ログアウトせずに一旦ブラウザを閉じてメールチェックなどを行う。この後再び、ブラウザで中継サーバ１２にログインすると、携帯電話のＩＰアドレスが最初のログイン時と変わってしまう。そのため中継サーバ１２は他のユーザ端末１３がログインしてきたと勘違いし、ログインを拒否してしまう。結果的に、ユーザ端末１３が中継サーバ１２にログインできない状態に陥ってしまう。このような操作は、携帯では頻繁に行われるため発生頻度も非常に高い。
【００２０】
これを解決するために、中継サーバ１２では、ある端末がログインした後に、無操作状態が一定時間続いたら、強制的にログアウトする仕組みを設ける。しかし、この場合も無操作状態が確定するまでは、同じ端末がログアウトせずに再ログインすることはできない。このように、従来の遠隔操作システムで携帯電話を使用すると不具合が発生し、正常な機器操作を行うことができない。
【００２１】
そこで、上記の問題点を解決するため、中継サーバ１２に接続されたユーザ端末１３をＩＰアドレス以外で判別する仕組みを新たに設けるようにした。以下、順に説明する。
まず、中継サーバ１２にランダムな数列を生成する機能を設ける。この数列を保存する領域をアクセスキーと呼ぶ。アクセスキーは、中継サーバ１２に接続するＶＤＲ１０ごとに１つ用意する。
ユーザ端末１３が接続していない時（初期状態）は、アクセスキーを０とする。ユーザ端末１３が接続してきたら、乱数を生成してその値をアクセスキーに設定する。
【００２２】
＜ログイン手順＞
ここでユーザ端末１３が中継サーバ１２にログインする時のアクセスキーの基本動作について説明する。
ユーザ端末１３がユーザＩＤとパスワードで中継サーバ１２にログインする。中継サーバ１２は、乱数を生成してこれをアクセスキーに設定し、この値をURLに含めてＶＤＲ１０に送信する。これを受信したＶＤＲ１０は、図３の操作メニューのＨＴＭＬファイルを生成し、予約一覧や予約設定などの各メソッドにhidden（nameはkey）としてアクセスキーを設定して、このデータを中継サーバ１２に送信する。
中継サーバ１２はこのデータを中継し、ユーザ端末１３に送信する。ユーザ端末１３に操作メニューが表示される。操作メニューから１つの項目を選択すると、メソッドにkeyが付加されて、リクエストと共にkeyが中継サーバ１２に送信される。中継サーバ１２は、現在保持しているアクセスキーと受信したkeyを比較して、端末の判別を行う。中継サーバ１２における判別方法は以下のようになる。
【００２３】
１）保持しているアクセスキーが０の時
ログインされていない場合を意味するため、keyの値に関係なくログインを許可する。
２）保持しているアクセスキーが０以外の時
保持しているアクセスキーと端末から送られてくるkeyが一致すれば、同一端末の再ログインを意味する。この時はログインを許可する。
保持しているアクセスキーと端末から送られてくるkeyが一致しない場合は、異なる端末からの接続と見なし、ログインを拒否する。
また、ユーザ端末１３がログアウトした場合や無操作状態でタイムアウトになった場合は、強制ログアウトを実施し、保持しているアクセスキーを０に戻す。
【００２４】
１．アクセスキーの生成手順
ログインには、ログイン画面からユーザＩＤとパスワードを入力してログインする場合と、ブックマークに登録されているURLを使ってログインする場合がある。それぞれの場合でアクセスキーの設定方法が異なる。
【００２５】
１−１．ログイン画面からログインする場合
図５は、ユーザ端末１３が中継サーバ１２にログインしてから予約操作するまでの流れを示したものである。図５の番号に沿って説明する。
（１）ユーザ端末１３が中継サーバ１２のURLに接続する。
（２）中継サーバ１２は、ログイン画面のＨＴＭＬファイルを送信する。
（３）ユーザ端末１３には、図２のようなログイン画面が表示される。ユーザ端末１３は、ここでユーザＩＤとパスワードを入力してログインを要求する。この時、ユーザ端末１３から中継サーバ１２に送られるＨＴＴＰリクエストはGETメソッドを使用すると、以下のようになる。
ヘッダ：
GET /cgi-bin/login.cgi?UserID=hishi&PassWord=1234 HTTP/1.1
【００２６】
（４）このリクエストを受信した中継サーバ１２は、アクセスキーが０の場合は、端末が接続されていないので、乱数を生成しこの値をアクセスキーに設定する。
アクセスキーが既に設定されている場合は、他の端末がログインしていることを意味する。この場合はログインを拒否する。
【００２７】
中継サーバ１２がログインを許可した場合の手順は以下のようになる。
（５）中継サーバ１２は、生成したアクセスキーをメソッドに含めてＶＤＲ１０に送る。実際のＨＴＴＰリクエストは以下のようになる。メソッドのファイル名は、操作メニューを要求するリクエストの場合は、menu.cgiとする。keyに設定された１６桁の数字がアクセスキーである。
ヘッダ：
GET /cgi-bin/menu.cgi?key=1009290236389043 HTTP/1.1
Host: ＶＤＲのＩＰアドレス
Connection: Keep-Alive
【００２８】
（６）ＶＤＲ１０はこれを受信し、操作メニューのＨＴＭＬファイルのFORMにある<INPUT type="hidden" name="p#id" value="0000000000">の下に、<INPUT type="hidden" name="key" value="xxxxx">を追加して、中継サーバ１２に返す。
ヘッダ：
HTTP/1.1 200 OK
Content-Length: ボディのバイト数
Content-Type: text/ＨＴＭＬ
ボディ：
<ＨＴＭＬ><HEAD><TITLE>操作メニュー</TITLE></HEAD><BODY>
<DIV align="center">ＶＤＲ遠隔操作</DIV>
<HR>
<DIV align="center">操作メニュー</DIV>
<FORM method="post" action="cgi-bin/rsv#list.cgi">
<INPUT type="hidden" name="p#id" value="0000000000">
<INPUT type="hidden" name="key" value="1009290236389043 ">
<INPUT type="submit" value="予約一覧"><BR>
</FORM>
<FORM method="post" action="cgi-bin/overlap.cgi">
<INPUT type="hidden" name="p#id" value="0000000000">
<INPUT type="hidden" name="key" value="1009290236389043 ">
<INPUT type="submit" value="予約重複確認"><BR>
</FORM>
<FORM method="post" action="cgi-bin/rec#list.cgi">
<INPUT type="hidden" name="p#id" value="0000000000">
<INPUT type="hidden" name="key" value="1009290236389043 ">
<INPUT type="submit" value="録画済番組一覧"><BR>
</FORM>
<HR>
<FORM method="post" action="cgi-bin/logout.cgi">
<INPUT type="hidden" name="p#id" value="0000000000">
<INPUT type="hidden" name="key" value="1009290236389043 ">
<INPUT type="submit" value="ログアウト"><BR>
</FORM>
<HR>
</BODY>
</ＨＴＭＬ>
【００２９】
（７）中継サーバ１２は、ＶＤＲ１０から受信した操作メニューのＨＴＭＬファイルをユーザ端末１３に送る。この時URLには、ユーザＩＤやパスワードと共にkeyを含める。
URLは以下のようになる。
HYPERLINK "http://www.testabc.net/i/cgi-bin/menu.cgi?UserID=hishi&PassWord=1234&key=xxxxx" www.testabc.net/i/cgi-bin/menu.cgi?UserID=hishi&PassWord=1234&key=xxxxx
【００３０】
（８）ユーザ端末１３でこれを受信すると、図３のような操作メニューが表示される。ここでURLをブックマークに登録すると、次から上記のURLを使ってログインできるようになる。操作メニューで予約一覧などのボタンを押すとメソッドが送信される。この時keyもいっしょに送信される。例えば、予約一覧を押した場合、以下のＨＴＴＰリクエストが送信される。
ヘッダ：
POST /cgi-bin/rsv#list.cgi HTTP/1.1
Host: ＶＤＲのＩＰアドレス
Connection: Keep-Alive
Content-Length: 20
ボディ：
key =1009290236389043
【００３１】
（９）中継サーバ１２は、このリクエストを受信する。このkeyの値と現在記憶しているアクセスキーが一致すれば、同一端末からのリクエストだということがわかる。この場合接続を許可するため、（１０）へ進む。アクセスキーが一致しなければ、他のユーザ端末１３が接続してきたことになるため、接続を拒否する。
（１０）中継サーバ１２は、（８）で示したkey付きのＨＴＴＰリクエストをＶＤＲ１０に送信する。
【００３２】
このようにアクセスキーをＨＴＴＰデータに含めることで、中継サーバ１２はユーザ端末１３の判別ができるようになり、複数端末の接続を防止すると同時に、同一端末の再ログインを許可することが可能となる。
【００３３】
１−２．ブックマークに登録したURLでログインする場合
ユーザ端末１３が上記の（７）のURL（menu.cgi）でログインする場合、過去に中継サーバ１２に接続したことがあり、ブックマークに登録したURLを使ってアクセスしたことになる。中継サーバ１２は、menu.cgiを受信した場合、ユーザ端末１３は既にkeyを持っているので、新たにアクセスキーは生成しない。このURLからkeyの値を読み取り、現在保持しているアクセスキーと比較する。
１）アクセスキーが０の場合は、ログインしている端末がないので、keyの値に関係なくログインを許可する。アクセスキーにはkeyの値を設定する。
２）アクセスキーが０でない場合（設定されている場合）は、URLから読み取ったkeyとアクセスキーが一致すれば、同一端末が再接続したことを意味するため、ログインを許可する。keyとアクセスキーが異なる場合は、別の端末がアクセスしてきたことを意味するため、ログインを拒否する。
【００３４】
以上の操作を行うと、ユーザ端末１３はログアウトを行わずに、ブックマークに登録したURLを使って再度ログインすることができるようになる。つまり、ログイン画面でユーザＩＤとパスワードを入力する作業は、最初の１回だけで、２回目からはブックマークからダイレクトにアクセスが可能である。
【００３５】
このような仕組みにより、サーバは複数ユーザからのログインを防止でき、且つ携帯電話で頻繁に発生する同一端末の再ログイン（ここでは、ログイン中にログアウトを行わずに再びログインすることを示す）を許可することができる。
【実施例１】
【００３６】
実施例２では、実際にアクセスキーを導入した場合の中継サーバ１２やＶＤＲ１０、ユーザ端末１３のソフトウェア動作について説明する。
中継サーバ１２では、いくつかのプロセス（＝タスク）が動作している。各プロセスの働きを以下に示す。尚、中継サーバ１２に接続するＶＤＲ１０は複数存在するため、ＶＤＲ（ｘ）と表記し、ｘはＶＤＲ１０固有のシリアル番号とする。
【００３７】
＜ＶＤＲ管理プロセス＞
ＶＤＲ１０が最初に接続するプロセスであり、中継サーバ１２に１つだけ存在する。中継サーバ１２に接続してきたＶＤＲ（ｘ）と通信を行うために、ＶＤＲ Ｉ／Ｆ（ｘ）プロセスを生成する。
【００３８】
＜ＶＤＲ Ｉ／Ｆ（ｘ）プロセス＞
中継サーバ１２に接続してきたＶＤＲ（ｘ）と実際に通信を行うプロセスである。中継サーバ１２に接続したＶＤＲ１０の数だけ生成される。
【００３９】
＜ユーザ端末管理プロセス＞
ユーザ端末１３が最初に接続するプロセスであり、中継サーバ１２に１つだけ存在する。ユーザ端末１３から送られてきたユーザＩＤとパスワードで制御対象となるＶＤＲ（ｘ）を特定し、そのユーザ端末Ｉ／Ｆ（ｘ）プロセスにログイン情報を渡す。
【００４０】
２．ユーザ端末Ｉ／Ｆ（ｘ）プロセス
中継サーバ１２に接続したＶＤＲ１０の数だけ存在する。制御対象のＶＤＲ（ｘ）が特定した後に、ユーザ端末１３と実際に通信を行う。ユーザ端末１３からのＨＴＴＰリクエストをＶＤＲ Ｉ／Ｆ（ｘ）プロセスに渡し、ＶＤＲ Ｉ／Ｆ（ｘ）プロセスから返って来たＨＴＴＰレスポンスをユーザ端末１３に送信する。
【００４１】
２−１．ＶＤＲと中継サーバの接続確立
ここでは、ＶＤＲ１０と中継サーバ１２の接続確立の手順を説明する。ＶＤＲ１０の動作は図６、中継サーバ１２のＶＤＲ管理プロセス及びＩ／Ｆ（ｘ）プロセスは図７のフローチャートにそれぞれ示す。
【００４２】
ＶＤＲ１０は、中継サーバ１２にＴＣＰ接続をする（Ｓ６０１）。中継サーバ１２のＶＤＲ管理プロセスはＶＤＲ１０が接続されると（Ｓ７０１Ｙｅｓ）、ＶＤＲ Ｉ／Ｆ（ｘ）プロセスを生成し、ＶＤＲ Ｉ／Ｆ（ｘ）プロセスが動き出す。プロセスを使用していることを示すＩ／Ｆフラグ（ｘ）に１を設定する（Ｓ７０２）。Ｉ／Ｆフラグ（ｘ）が０、つまり使用していないＶＤＲ Ｉ／Ｆ（ｘ）プロセスを破棄する（Ｓ７０３）。
【００４３】
ＶＤＲ Ｉ／Ｆ（ｘ）プロセスに処理が移り、ＶＤＲ１０にレスポンスを返す（Ｓ７０４）。ＶＤＲ１０はこれを受信すると（Ｓ６０２Ｙｅｓ）、中継サーバ１２に認証要求パケットを送信する（Ｓ６０３）。中継サーバ１２のＶＤＲ Ｉ／Ｆ（ｘ）プロセスは、このパケットを受信し、正規のＶＤＲ１０かどうか確認する（Ｓ７０５）。認証要求パケットの情報を元に、ＶＤＲ（ｘ）を特定する（Ｓ７０７）。ＶＤＲ（ｘ）が見つかった場合（Ｓ７０９Ｙｅｓ）、接続を許可する場合は認証許可パケットをＶＤＲ１０に送る（Ｓ７１１）。
【００４４】
ＶＤＲ１０は、中継サーバ１２からのパケットを受信し（Ｓ６０４）、認証許可されたかどうか確認する（Ｓ６０５）。許可された場合は（Ｓ６０５Ｙｅｓ）、Ｓ６０６へ進む。ＶＤＲ１０は、サーバからのリクエストを受信状態で待つ（Ｓ６０６）。
【００４５】
ＶＤＲ Ｉ／Ｆ（ｘ）プロセスは、ユーザ端末Ｉ／Ｆ（ｘ）プロセスを生成する（Ｓ７１２）。ＶＤＲ Ｉ／Ｆ（ｘ）プロセスは、ユーザ端末Ｉ／Ｆ（ｘ）プロセスからのリクエストがあるかどうか確認し（Ｓ７１３）、なければ（Ｓ７１３Ｎｏ）Ｓ７１４へ進む。ＶＤＲ Ｉ／Ｆ（ｘ）プロセスはHEADメソッドのリクエストをＶＤＲ１０に送信する（Ｓ７１４）。
【００４６】
ＶＤＲ１０は、中継サーバ１２からのリクエストを受信する（Ｓ６０６）。リクエスト内容を判別し、HEADメソッドの場合はレスポンスを返す（Ｓ６０８）。
中継サーバ１２はレスポンスを受信したら（Ｓ７１５Ｙｅｓ）眠る（Ｓ７１６）。1分後に動き出し、Ｓ７１３へ戻る。このように、ＶＤＲＩ／Ｆ（ｘ）プロセスでは、ユーザ端末Ｉ／Ｆ（ｘ）プロセスからのプロセス間通信を待ちながら、１分ごとにHEADメソッドをＶＤＲ１０に送信する。
【００４７】
２−２．ユーザ端末のログイン
次に、ユーザ端末１３が中継サーバ１２にログインする手順を図６，７に加え、図８，９，１０に示すフローチャートを参照して説明する。図８はユーザ端末１３の動作を、図９は中継サーバ１２におけるユーザ端末管理プロセスの動作を、図１０は中継サーバ１２におけるユーザ端末Ｉ／Ｆプロセスの動作を示すフローチャートである。
【００４８】
ユーザ端末１３はＶＤＲ１０を遠隔操作するために、中継サーバ１２のURLに接続する（Ｓ８０３）。中継サーバ１２のユーザ端末管理プロセスは、ユーザ端末１３からのリクエストを判別し（Ｓ９０２）、ログイン要求のリクエストの場合は、ユーザ端末１３にログイン画面のＨＴＭＬファイルを送る（Ｓ９０３）。これを受信すると、ユーザ端末１３に図２のログイン画面が表示される。ユーザＩＤとパスワードを入力してログインを要求する（Ｓ８０４）。
【００４９】
ユーザ端末管理プロセスは、ユーザＩＤとパスワードで中継サーバ１２に接続されたＶＤＲ（ｘ）を探す（Ｓ９０４）。見つからない場合は（Ｓ９０５Ｎｏ）、Ｓ９０７へ進む。見つかった場合は（Ｓ９０５Ｙｅｓ）、Ｓ９０６へ進む。ＶＤＲ（ｘ）が中継サーバ１２に接続されていないという内容のログインを拒否するＨＴＭＬファイルをユーザ端末１３に返す（Ｓ９０７）。ユーザ端末Ｉ／Ｆ（ｘ）プロセスへログイン情報を渡す（Ｓ９０６）。
【００５０】
ユーザ端末Ｉ／Ｆ（ｘ）プロセスはこのログイン情報を受け取り（Ｓ１０６）、リクエスト内容に応じて、リクエストのファイル名がlogin.cgiの場合は、Ｓ１０８へ進む。Menu.cgiの場合は、Ｓ１１４へ進む。保存しているアクセスキーが０の場合は（Ｓ１０８Ｙｅｓ）、このユーザＩ／Ｆ（ｘ）プロセスに誰もログインしていないことを示す。この場合ログインを許可する。乱数を生成してアクセスキーに設定する（Ｓ１０９）。keyにアクセスキーの値をセットして、操作メニューを要求するリクエスト（GETメソッド）にkeyを付加してＶＤＲ Ｉ／Ｆ（ｘ）プロセスに渡す（Ｓ１１１）。
【００５１】
ＶＤＲ Ｉ／Ｆ（ｘ）プロセスでこれを受ける（Ｓ７１３）。ユーザＩ／Ｆ（ｘ）プロセスからのリクエストの場合は（Ｓ７１３Ｙｅｓ）、Ｓ７１７へ進む。このリクエストをＶＤＲ１０に送信する（Ｓ７１７）。
【００５２】
ＶＤＲ１０でリクエストを受信する（Ｓ６０６）。GETメソッドの場合は、実施例１で示したように操作メニューのＨＴＭＬにkeyを付加して、中継サーバ１２へ送信する（Ｓ６０９）。ＶＤＲ１０はＳ６０６へ戻り、受信状態で待機する。
【００５３】
ＶＤＲ Ｉ／Ｆ（ｘ）プロセスでこのレスポンスを受信する（Ｓ７１８）。このレスポンスをユーザ端末Ｉ／Ｆ（ｘ）プロセスに渡す（Ｓ７１９）。ユーザ端末Ｉ／Ｆ（ｘ）プロセスでこのレスポンスを受け（Ｓ１１２）、これをユーザ端末１３に送る（Ｓ１１３）。Ｓ１１９へ進み、ユーザ端末１３からのリクエストを待つ。
【００５４】
ユーザ端末１３でレスポンスを受信すると（Ｓ８０８）、図３の操作メニューがユーザ端末１３上に表示される。このURLは、以下に示すようにユーザＩＤとパスワード、そしてユーザ端末１３の判別に使うKeyが付加されている。
HYPERLINK "http://www.testabc.net/i/cgi-bin/menu.cgi?UserID=hishi&PassWord=1234&key=xxxxx" www.testabc.net/i/cgi-bin/menu.cgi?UserID=hishi&PassWord=1234&key=xxxxx
これをブックマークに登録すると、次回からこのURLでログインを要求することができる。
【００５５】
ユーザは操作メニューのボタンを操作する（Ｓ８１０）。例えば、予約一覧のボタンを押すと、POSTメソッド（予約一覧を要求する）リクエストが送信される。ユーザ端末Ｉ／Ｆ（ｘ）プロセスは、ユーザ端末１３からリクエスト（予約一覧要求）を受信する（Ｓ１１９）。リクエストを判別し（Ｓ１１２）、予約リクエストの場合は、Ｓ１１４へ進む。アクセスキーの判別を行い（Ｓ１１４）、ここでは、アクセスキーは先程設定されているため、Ｓ１１６へ進む。
【００５６】
リクエストに含まれるkeyの値と、アクセスキーが等しいかチェックする（Ｓ１１６）。等しい場合は（Ｓ１１６Ｙｅｓ）、同じユーザ端末１３がアクセスしてきたことになるので、ログインを許可し（Ｓ１１７）、Ｓ１１１へ進む。
ここで、例えば、他の端末がリクエストしてきても、リクエストに含まれるkeyとアクセスキーが異なるため、ログインを拒否することができる。この場合Ｓ１１８へ進む。ログイン拒否のＨＴＭＬを送信する（Ｓ１１８）。
【００５７】
このリクエスト（予約一覧要求）をＶＤＲＩ／Ｆ（ｘ）プロセスに渡す（Ｓ１１８）。ＶＤＲＩ／Ｆ（ｘ）プロセスは（Ｓ７１３）、このリクエスト（予約一覧要求）を受け取りＳ７１７へ進む。このリクエスト（予約一覧要求）をＶＤＲ１０に送信する（Ｓ７１７）。
【００５８】
ＶＤＲ１０は、中継サーバ１２からのリクエストを受信する（Ｓ６０６）。リクエスト内容を判別し（Ｓ６０７）、POSTメソッドの時は、ファイル名によって処理内容が異なる（Ｓ６１０）。ファイル名がrsv#list.cgiの時は、現在の予約情報を一覧（予約一覧）にしてＨＴＭＬファイルに変換しkeyを付加して、中継サーバ１２へ送信する（Ｓ６１２）。
【００５９】
ＶＤＲ Ｉ／Ｆ（ｘ）プロセスでこのレスポンス（予約一覧ＨＴＭＬ）を受信する（Ｓ７１８）。このレスポンスをユーザ端末Ｉ／Ｆ（ｘ）プロセスに渡す（Ｓ７１９）。ユーザ端末Ｉ／Ｆ（ｘ）プロセスは、レスポンス（予約一覧ＨＴＭＬ）を受け取り（Ｓ１１２）、これをユーザ端末１３に送る（Ｓ１１３）。ユーザ端末１３はレスポンス（予約一覧ＨＴＭＬ）を受信すると（Ｓ８１１）、画面上に図４の予約一覧が表示される。これ以降の予約操作も同様に行う。
【００６０】
このように中継サーバで生成した乱数をURLやＨＴＴＰメソッドに埋め込むことで、中継サーバは正確にユーザ端末を判別できるようになる。これにより、携帯電話で中継サーバにログインし、ログアウトせずに他のアプリケーションを動かしても、再度中継サーバにログインできるようになり、従来の問題点が解決できる。
【図面の簡単な説明】
【００６１】
【図１】本実施例に適用されるインターネットに常時接続された記録装置を、ユーザ端末を用いて、録画予約を行う動作を説明するための図である。
【図２】本実施例に適用されるログイン画面の一例を示した図である。
【図３】本実施例に適用される操作メニュー画面の一例を示した図である。
【図４】本実施例に適用される予約一覧画面の一例を示した図である。
【図５】本実施例に適用されるユーザ端末が中継サーバにログインしてから予約操作するまでの動作を説明するための図である。
【図６】本実施例に適用されるＶＤＲの動作を説明するためのフローチャートである。
【図７】本実施例に適用される中継サーバ、ＶＤＲ側プロセスの動作を説明するためのフローチャートである。
【図８】本実施例に適用されるユーザ端末の動作を説明するためのフローチャートである。
【図９】本実施例に適用される中継サーバ、ユーザ端末管理プロセスの動作を説明するためのフローチャートである。
【図１０】本実施例に適用される中継サーバ、ユーザ端末Ｉ／Ｆプロセスの動作を説明するためのフローチャートである。
【符号の説明】
【００６２】
１０…ＶＤＲ（記録装置）
１１…ルータ
１２…中継サーバ
１３…ユーザ端末
【図１】
0004735113.tif 000002
【図２】
0004735113.tif 000003
【図３】
0004735113.tif 000004
【図４】
0004735113.tif 000005
【図５】
0004735113.tif 000006
【図６】
0004735113.tif 000007
【図７】
0004735113.tif 000008
【図８】
0004735113.tif 000009
【図９】
0004735113.tif 000010
【図１０】
0004735113.tif 000011