(57)【要約】システム及び方法は、パーソナルまたはデジタルビデオレコーダ（ＰＶＲ／ＤＶＲ）、セットトップボックス（ＳＴＢ）、プレイスシフトデバイス、または別のメディアサーバをリモートコントロールするために記載されている。通信セッションは、クライアントから受信した接続要求に応答して、サーバホストとメディアサーバとの間で確立される。メディアサーバ上で処理されたコンテンツに関する情報は、セッション経由で受信され、クライアントに提供される。クライアントから受信した後続の命令に応答して、メディアサーバが制御されることができ、または、通信セッション経由でホストからメディアサーバへ指示を提供することによって、他のアクションが実行されることができる。追加または代替機能が、必要に応じて提供されてもよい。【選択図】図２
2013516108.tif 000002
【特許請求の範囲】
【請求項１】
クライアントと、メディアコンテンツを処理するように構成されたメディアサーバとをネットワーク経由で通信するホストによって実行可能な方法であって、
前記ネットワーク経由で前記ホストにおいて前記クライアントから第１のメッセージを受信することと、
前記第１のメッセージに応答して、前記ネットワーク経由で前記ホストと前記メディアサーバとの間のセッションを確立することと、
前記セッション経由で前記メディアサーバから前記ホストにおいて、前記メディアサーバで処理された前記メディアコンテンツに関する情報を受信することと、
前記メディアサーバで処理された前記メディアコンテンツに関する情報を前記ネットワーク経由で前記ホストから前記クライアントに提供することと、
前記メディアサーバを制御するために前記ホストにおいて前記クライアントから命令を受信することと、
前記セッション経由で前記命令を実行するように前記メディアサーバに指示することと
を含む方法。
【請求項２】
前記メディアサーバはデジタルビデオレコーダを備え、前記命令は前記デジタルビデオレコーダに番組を録画するように指示する、請求項１に記載の方法。
【請求項３】
前記メディアサーバはデジタルビデオレコーダを備え、前記命令は前記デジタルビデオレコーダから番組を削除するように前記デジタルビデオレコーダに指示する、請求項１に記載の方法。
【請求項４】
前記ネットワーク経由で前記ホストから前記クライアントに番組ガイド情報を提供することを更に含み、前記番組ガイド情報は、前記メディアサーバに利用可能な番組編成コンテンツを記載する、請求項１に記載の方法。
【請求項５】
前記メディアサーバはデジタルビデオレコーダを備え、前記メディアコンテンツを変更する前記命令は、デジタルビデオレコーダを用いて前記番組ガイド情報において識別された番組を録画する命令を含む、請求項４に記載の方法。
【請求項６】
前記確立することは、前記ネットワーク経由で前記メディアサーバと確立される予め決定された接続を有するメッセージサーバへ要求を送信することを含み、かつ、前記予め決定された接続は前記メディアサーバによって提供されるメッセージに応答して確立される、請求項１に記載の方法。
【請求項７】
前記セッションは、リアルタイム通信セッションである、請求項１に記載の方法。
【請求項８】
前記提供することは、前記情報を有するＷｅｂページを形成すること、及び、前記クライアント上で実行中のアプリケーションに前記Ｗｅｂページを送信することを含む、請求項１に記載の方法。
【請求項９】
前記Ｗｅｂページは、メディアプレーヤーアプリケーションに対応するように形成される、請求項７に記載の方法。
【請求項１０】
前記メディアサーバ上に記憶されている前記メディアコンテンツの少なくともいくつかを前記メディアプレーヤーアプリケーションに提供するように前記メディアサーバに指示することを更に含む、請求項８に記載の方法。
【請求項１１】
クライアントと、メディアコンテンツを処理するように構成されたメディアサーバとをネットワーク経由で通信するシステムであって、
既存の接続を用いて前記ネットワーク経由で前記メディアサーバと通信するように構成されたメッセージサーバと、
前記ネットワーク経由で前記クライアントから前記メディアサーバへの接続要求を受信し、前記要求に応答して前記メディアサーバに連絡するように前記メッセージサーバに指示し、前記ネットワーク経由で前記メディアサーバとセッションを確立し、前記セッション経由で前記メディアコンテンツに関する情報を受信し、前記メディアコンテンツに関する情報を前記クライアントに提供し、前記メディアサーバを制御するために前記クライアントから命令を受信し、かつ、前記クライアントから受信した前記命令に応答して、前記命令を実行するように前記セッション経由で前記メディアサーバに指示するように構成されたガイドサーバと
を備えるシステム。
【請求項１２】
前記セッションは、リアルタイム通信セッションである、請求項１１に記載のシステム。
【請求項１３】
前記ガイドサーバは、Ｗｅｂ互換形式で前記メディアサーバに記憶されている前記メディアコンテンツに関する情報を提供するように構成されたＷｅｂサーバを含む、請求項１１に記載のシステム。
【請求項１４】
番組ガイド情報を含む第１のデータベースを更に含み、前記ガイドサーバは、前記第１のデータベースから前記番組ガイド情報を受信するように、かつ、前記ネットワーク経由で前記クライアントに前記番組ガイド情報を提供するように構成されており、前記命令は、前記クライアントに提供される前記番組ガイド情報において識別された番組を録画する命令を含む、請求項１１に記載のシステム。
【請求項１５】
前記ガイドサーバは、特定の番組を検索するために前記クライアントから命令を受信し、前記メディアサーバに記憶されている前記メディアコンテンツに関する情報と前記番組ガイド情報の両方において特定の番組を検索し、かつ、前記クライアントに複合検索結果を提供するように更に構成される、請求項１４に記載のシステム。
【請求項１６】
前記メディアサーバはプレイスシフトデバイスであり、前記メディアサーバに記憶されているコンテンツはユーザによって録画された番組を含み、かつ、前記命令は、前記ユーザによってクライントに提供された入力に応答して提供される、前記ユーザによって録画された番組の１つを録画する命令である、請求項１４に記載のシステム。
【請求項１７】
前記メディアサーバは、前記メディアサーバとの前記セッションを確立することに先立って、前記ユーザを認証するように更に構成される、請求項１６に記載のシステム。
【請求項１８】
クライアントと、記憶されているメディアコンテンツを有するメディアレコーダとをネットワーク経由で通信するホストによって実行可能な方法であって、
前記メディアレコーダを識別する第１のメッセージを前記ネットワーク経由で前記ホストにおいて前記クライアントから受信することと、
前記第１のメッセージに応答して、前記識別されたメディアレコーダと既存の接続を有するメッセージサーバに第２のメッセージを前記ネットワーク経由で送信することと、
前記メディアレコーダから受信した第３のメッセージに応答して、前記メディアレコーダと前記ホストとの間のセッションを前記ネットワーク経由で作成することと、
前記ネットワーク経由で前記ホストから前記クライアントに番組ガイド情報を提供することと、
前記番組ガイド情報において識別された番組を録画する命令を前記クライアントから前記ホストにおいて受信することと、
前記ホストにおいて前記命令を受信することに応答して、識別された番組を録画するように前記セッション経由で前記メディアレコーダに指示することと
を含む方法。
【請求項１９】
前記セッションはリアルタイム通信セッションであり、前記方法は、前記リアルタイム通信セッション経由で前記メディアレコーダから現在計画された録画のリストを受信することを含む、請求項１８に記載の方法。
【請求項２０】
更に、前記クライアントから受信した前記命令と前記現在計画された録画のリストとの間の競合を識別することを含み、前記競合が存在する場合、前記競合を解決する前記クライアントからの第２の命令を受信することと、前記第２の命令に従って前記競合を解決するように前記リアルタイム通信セッション経由で前記メディアレコーダに指示することとを含む、請求項１９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本出願は、２００９年１２月２３日出願の米国非仮出願番号第１２／６４５，８７０号の優先権を主張する。
【０００２】
本開示は、一般的にネットワーク経由でメディアレコーダ、サーバ、及び／または他のデバイスを制御するためのシステム及び方法に関する。このようなシステム及び技術は、例えば、セットトップボックス、デジタルビデオレコーダ（ＤＶＲ）、プレイスシフト（ｐｌａｃｅｓｈｉｆｔｉｎｇ）デバイス、及び／または、他の種類のメディアデバイスをリモートコントロールすることに役立ち得る。
【背景技術】
【０００３】
インターネット及び他のデジタル通信ネットワークは、個人生活及び職業生活のあらゆる側面に大きな影響を与え続けている。ネットワーク通信は、コスト削減及びポータブルコンピューティングデバイスの能力の向上だけでなく、携帯電話及び他の無線通信技術の普及及び能力の向上のために、益々ユビキタスになっている。更に、セットトップボックス（ＳＴＢ）、テレビジョン受信機、パーソナルまたはデジタルビデオレコーダ（ＤＶＲ）、プレイスシフトデバイス等を含むより多くのデバイスは、デジタルネットワークを介した通信が可能になってきている。消費者はそれゆえ、広い範囲の場所及び設置からメディアコンテンツを便利にコントロールすることを期待している。
【０００４】
しかしながら、多くの場合、ＳＴＢ、ＤＶＲ、プレイスシフトデバイス等のネットワーク対応メディアデバイスをリモートコントロールすることにおいて課題が生じる。ファイアウォール及び他のセキュリティメカニズムは、例えば、ホームネットワークに配置されている消費者機器への直接アクセスを制限することができる。その結果、番組を録画または表示するために、デバイス上で設定を変更するために、デバイスを介して利用可能なコンテンツを表示するために、または、他のタスクを実行するために、デバイスに連絡することにおいて困難が生じ得る。いくつかは、インターネットまたは他のネットワーク上でメディアデバイスとの通信を確立しようとしているが、これらの限られたソリューションでは通常、リモートサーバから任意のコマンドを取得するデバイスによる定期的なポーリングに依存してきた。これらのポーリング・スキームは、処理の遅延になりやすいだけでなく、ユーザがアクションを要求するとき便利なフィードバックまたは確認を欠如しやすい。更に、ポーリング・スキームを介して利用可能なアクションの種類は、実際には厳しく制限されている。
【０００５】
その結果、現在は、ＤＶＲ、ＳＴＢ、プレイスシフトデバイス、または他のネットワーク対応のメディアサーバのデバイスを制御するためのシステム及び方法を作成することが望ましい。このようなシステム及び方法は、理想的には、多様なクライアントデバイスから利用できるようになる制御オプションの豊富なセットを提供することであろう。これら及び他の望ましい特徴及び特性は、添付の図面及びこの背景技術の項目と併せて、後に続く詳細な説明及び添付の特許請求の範囲から明らかになるであろう。
【発明の概要】
【課題を解決するための手段】
【０００６】
様々な例示的実施形態によれば、システム及び方法は、ＰＶＲ／ＤＶＲ等及び／または別のメディアサーバと通信する、パーソナルまたはデジタルビデオレコーダ（ＰＶＲ／ＤＶＲ）、セットトップボックス（ＳＴＢ）、プレイスシフトデバイスまたはシステムをリモートコントロールするために記載されている。いくつかの実施形態では、リアルタイムの、準リアルタイムの、または他の通信セッションは、クライアントから受信した接続要求に応答して、サーバホストとメディアサーバとの間で確立される。メディアサーバ上で処理されたコンテンツに関する情報は、セッション経由で受信され、クライアントに提供される。クライアントから受信した後続の命令に応答して、メディアサーバが制御されることができ、及び／または、その他のアクションはセッションを用いて実行されることができる。メディアサーバに記憶されている番組は削除されてもよく、例えば、または、追加の番組を録画することができる。他の実施形態は、チャンネルを変更するために、コンテンツの早送りまたは巻き戻しをするために、ユーザのプレファレンスを調整するために、及び／または、必要に応じて他のアクションを実行するために、制御命令を提供してもよい。
【０００７】
他の実施形態では、クライアントと、記憶されている番組編成（プログラミング）コンテンツを有するメディアサーバと、ネットワーク経由で通信するホストシステムに関する。システムは、既存の接続を用いてネットワーク経由でメディアサーバと通信するように構成されたメッセージサーバと、ガイドサーバとから好適に構成されている。ガイドサーバは、ネットワーク経由でクライアントからメディアサーバへの接続要求を受信し、要求に応答してメディアサーバに連絡するためにメッセージサーバに指示し、ネットワーク経由でメディアサーバとセッションを確立し、セッション経由でメディアサーバ上に記憶されているメディアコンテンツに関する情報を受信し、メディアコンテンツに関する情報をクライアントに提供し、メディアサーバを制御するために、かつ、クライアントから受信した命令に応答して、クライアントから命令を受信し、及び、命令を実行するためにセッション経由でメディアサーバに指示するように、好適に構成されている。
【０００８】
更に他の実施形態では、クライアントと、記憶されているメディアコンテンツを有するメディアレコーダと、ネットワーク経由で通信するガイドサーバまたは他のホストによって実行可能な方法を提供する。第１のメッセージは、ネットワーク経由でホストにおいてクライアントから受信され、第１のメッセージは、メディアレコーダを識別（特定）する。第１のメッセージに応答して、第２のメッセージは、識別されたメディアレコーダとの既存の接続を有するメッセージサーバに送信される。メディアレコーダから受信した第３のメッセージに応答して、セッションはネットワーク経由でメディアレコーダとホストとの間で作成される。番組ガイド情報は、ネットワーク経由でホストからクライアントに提供されており、番組ガイド情報で識別（特定）された番組を録画するための命令は、ホストにおいてクライアントから受信される。命令の受信に応答して、メディアレコーダは、識別された番組を録画するためにセッション経由で指示される。
【０００９】
様々な他の実施形態、態様、及び特徴は、以下に詳細に記載されている。
【００１０】
例示的な実施形態について、類似の数字が類似の要素を示すような以下の図面と併せて以下に記載する。
【図面の簡単な説明】
【００１１】
【図１】例示的なガイドサーバのホストシステムのブロック図である。
【図２】リモートメディアサーバを制御するための例示的なプロセスを示す図である。
【図３】ガイドデータを有するインタフェース及びいくつかの実施形態においてクライアントによって提示されることができるメディアプレーヤーの一実施例を示す。
【図４】いくつかの実施形態において、ＤＶＲまたは他のメディアサーバに記憶されている番組をリモートで管理するために使用することができるインタフェースの一実施例を示す。
【図５】いくつかの実施形態において、番組の録画の競合を解決するために用いることができるインタフェースウィンドウの一実施例を示している。
【発明を実施するための形態】
【００１２】
本発明の以下の詳細な説明は、本質的に単なる例示であり、本発明または本発明の適用及び用途を限定することを意図するものではない。更に、前述の背景技術あるいは以下の詳細な説明で提示された理論にも拘束されることを意図するものではない。
【００１３】
様々な実施形態によれば、ガイドサーバまたは他のホストは、Ｗｅｂまたはその他のネットワークベースの機能を使用してデバイスの直接的で便利な制御を可能にする、セットトップボックス（ＳＴＢ）、テレビジョン受像機、パーソナルまたはデジタルビデオレコーダ（ＤＶＲ）、プレイスシフトデバイス、ファイルサーバ、または他のメディアサーバとのリアルタイムセッションを確立することができる。ネットワーク接続されたホストは、いくつかの実施形態において、プレファレンスを設定するために、サーバによって録画されるべき番組を選択するために、以前に記憶された番組を管理するために、及び／または、他の機能を適切に用いることができる。例えば、いくつかの実施形態では、ホストは、メディアサーバ上に記憶されているメディアコンテンツに関するリアルタイム（または準リアルタイム）情報を取得することができ、それによって、記憶されているファイルの便利な検索及び管理だけでなく、今後の番組編成の新たな録画を指示する機能、及び／または、必要に応じて他のアクションを実行する機能を可能にする。ホストはまた、検索または他の機能を提供してもよい；いくつかの実施形態では、検索は、非常に強力なサーチエクスペリエンスを作成するために、メディアサーバ上に記憶されている番組編成だけでなく、番組ガイド情報、オンデマンドコンテンツに関する情報、及び／または他の入手可能な情報を考慮してもよい。
【００１４】
命令または他の情報を取得するためにリモートデバイスによって断続的なポーリングに頼る技術とは異なり、様々な実施形態は、メディアサーバとの既存の接続を維持するメッセージングサーバを使用して、リモート・メディア・デバイスとのリアルタイム接続を確立することができる。ユーザがリモートメディアサーバの制御または他のセッションを開きたいときに、既存の接続は、オンラインホストで比較的即時のセッションを確立するために用いることができ、それによって、メディアサーバがホストから情報を“プル”するのを待つのではなく、コマンド及び他のメッセージがリアルタイム（または、リアルタイムに近い時間）でメディアサーバに“プッシュ”されることを可能にする。
【００１５】
この比較的即時性は、ユーザエクスペリエンスだけでなく、非常に多様なフィーチャへのアクセスを大幅に向上させる。メディアサーバのデバイスに直接リアルタイムのアクセスを提供することにより、例えば、ホストのいくつかの実装は、便利なＷｅｂインタフェースにおいてであるが、直接接続されたクライアントアプリケーションから利用可能な機能の全てではなくともほとんどへのアクセスを提供することができる。様々な実施形態は、それゆえ、従来のＷｅｂまたは類似の機能を用いて便利にアクセスすることができる視聴者に、比較的堅牢な機能及び特長のセットを提供する。他の実施形態は、必要に応じて代替または追加の機能を提供してもよい。
【００１６】
図面に戻り及び図１を初めに参照すると、メディアサーバ１０４を適切にリモートコントロールするための例示的なシステム１００は、ネットワーク１１０を介してガイドサーバまたは他のホスト１１６にアクセスするクライアント１０２を含む。クライアント１０２は、いくつかの実施形態では、従来のＷｅｂブラウザ１０３を用いてガイドサーバホスト１１６と対話してもよい。クライアント１０２から要求を受信すると、ホスト１１６は、サーバ１０４に利用可能な番組編成または他のメディアコンテンツ１０５に関する情報を取得するために、メディアサーバ１０４とのセッションを確立することができる。この情報は、適切に処理及び／または（例えば、Ｗｅｂページ等として）フォーマットされてもよく、かつ、ネットワーク１１０を介してクライアント１０２に提供することができる。他の情報（例えば、番組ガイド情報１１５）もまた、クライアント１０２に提供することができる。様々な実施形態において、クライアント１０２のユーザは、来るべき番組を録画するために、記憶されている番組を削除するために、及び／または、そうでなければホスト１１６に転送されるコンテンツ１０５を変更するために、命令を提供する。クライアント１０２からそのような命令を受信すると、ホスト１１６は、命令を実行するようにサーバ１０４に適切に指示する。
【００１７】
他の実施形態は、他の機能または特徴を提供してもよい。いくつかの実装は、例えば、コンテンツ１０５の堅牢な検索を提供してもよい。このような検索は、メディアサーバ１０４から取得した情報に加えて、番組ガイド情報１１５、オンデマンド番組編成についての情報１１２、及び／または、必要に応じて他の情報を考慮してもよい。他の実施形態は、Ｗｅｂブラウザまたは他のウィンドウ内でメディアコンテンツ１０５を表示するために、及び／または、所望され得るように他のアクションを実行するために、メディアサーバ１０４上のプレファレンスまたは他の設定を変更する能力を追加的にまたは代替的に提供してもよい。
【００１８】
クライアント１０２は、ネットワーク１１０を介して通信することが可能である、任意のデバイス、コンポーネント、モジュール、ハードウェア、ソフトウェア、アプリケーション及び／またはそれらに類するものであってもよい。そのために、多数の異なる種類のクライアント１０２は、一般的または特殊な目的の任意の種類のハードウェア、ソフトウェア及び／またはファームウェアを用いて実装されてもよい。いくつかの実施形態では、クライアント１０２は、従来のパーソナルコンピュータ、ポータブルコンピュータ、ワークステーション及び／または他のコンピューティングシステムであってもよい。さらに他の実施形態では、いくつかの種類のクライアント１０２は、パーソナルデジタルアシスタント、ビデオゲームプレーヤ、携帯電話、ネットワーク機器、ネットワーク対応のリモートコントロール、及び／または、ネットワーク１１０上で通信可能な他デバイスを含んでもよい。
【００１９】
図１に示す実施形態では、クライアント１０２は、標準的なインターネット、Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ（ＷＷＷ）及び／または他のフォーマットと互換性がある任意の種類の従来のブラウザアプリケーション１０３を実行する。多数の異なるコンピューティングプラットフォームに利用可能な従来のＷｅｂブラウザは、Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ、Ｍｏｚｉｌｌａ  Ｆｉｒｅｆｏｘ、ＳＡＦＡＲＩ、ＣＨＲＯＭＥ、及びＯｐｅｒａブラウザと同様に他の多くのものを含む。そのようなブラウザ１０３は、公開プロトコル（例えば、ハイパーテキストマークアップ言語（ＨＴＭＬ）、拡張マークアップ言語（ＸＭＬ）、及び／または、それらに類するもの）に従ってフォーマットされたアクティブなまたは他の文書を表示することが一般的に可能である。多くのブラウザ１０３は、“プラグイン”のアプリケーション、アプレット等を実行することが可能である。そのようなプラグインは、ＡｃｔｉｖｅＸ、ＪＡＶＡ、及び／または、任意の数の他のフォーマットに従ってフォーマットされてもよい。
【００２０】
いくつかの実施形態では、クライアント１０２は、メディアアプリケーション１０７を含む。このアプリケーション１０７は、ブラウザ１０３が必要とされなくてもよいように、ブラウザ１０３とは別々に実行するスタンドアロンのメディアプレーヤーであってもよい。他の実施形態では、メディアアプリケーション１０７は、必要に応じてブラウザ１０３内で実行されるプラグインまたは他のアプレットとして実装することができる。いくつかの実施形態では、メディアアプリケーション１０７は、ホスト１１６等のネットワーク接続されたホストから最初に得られる。アプリケーションは、いくつかの実施形態では、必要に応じて取得されてもよく、後続の実行のためにクライアント１０２に記憶されてもよい。いくつかの実施形態では、クライアント１０２上に表示するメディアを提供しなくてもよい；このようなクライアント１０２は、それにもかかわらず、録画される番組を選択するために、プレファレンスを変更するために、メディアサーバ１０４の動作を制御するために、及び／または、メディアサーバ１０４に関連する他のアクションを実行するために、ホスト１１６と対話することができる場合がある。
【００２１】
ネットワーク１１０は、送信機（例えば、メディアサーバ１０４）と受信機（例えば、メディアサーバ１０４）との間でメッセージを送信することが可能な任意のデジタルまたは他の通信ネットワークである。様々な実施形態では、ネットワーク１１０は、任意の数の通信プロトコルをサポートする、パブリックまたはプライベートのデータ接続、リンク、またはネットワークを含む。ネットワーク１１０は、例えば、インターネット、または他のネットワークを含んでもよい。他の実施形態は、必要に応じて任意の種類の代替または後継プロトコルを使用してもよいが、そのようなネットワークは、ＴＣＰ／ＩＰまたは他の従来のプロトコルに基づいていてもよい。様々な実施形態では、ネットワーク１１０はまた、携帯電話、パーソナルデジタルアシスタント、及び／またはそれらに類するものと通信するためのセルラー通信ネットワーク等の、無線及び／または有線の電話網を組み込んでもよい。ネットワーク１１０の様々な実施形態はまた、１つまたは複数のＩＥＥＥ  ８０２.３及び／またはＩＥＥＥ  ８０２.１１ネットワーク等の任意の種類の無線または有線のローカルエリアネットワークを組み込んでもよい。
【００２２】
メディアサーバ１０４は、メディアコンテンツ１０５を受信、録画、プレイスシフト、及び／または、あるいは他の処理をすることができるネットワーク１１０上で通信する任意のデバイスまたはシステムである。様々な実施形態では、メディアサーバ１０４は、後で表示するための受信番組をサーバ１０４に録画させる、パーソナルまたはデジタルビデオレコーダ（ＤＶＲ）機能を含む。ＤＶＲはスタンドアロンデバイスであってもよく、または、プログラミング信号を受信及び復調することができる任意の種類の受信機（例えば、ケーブル、直接放送衛星（ＤＢＳ）、または他のセットトップボックス（ＳＴＢ））内に統合されてもよい。メディアサーバ１０４の他の実施形態は、任意の種類のストリーミングまたはファイルベースのコンテンツ１０５を受信、記憶か、あるいは処理することができる、任意の種類のスタンドアロンまたはハイブリッドメディアプレーヤー、ファイルサーバ、及び／またはそれらに類するものを含むことができる。メディアサーバ１０４の更に他の実施形態は、必要に応じてネットワークゲームのサーバまたは他のメディアサービスを実装することができる。
【００２３】
コンテンツ１０５は、メディアサーバ１０４にアクセス可能な任意の種類のファイルベースの番組編成または他のコンテンツである。様々な実施形態では、コンテンツ１０５は、内部または外部のテレビジョン受信機から受信される記憶されている番組編成を表す。コンテンツ１０５はまた、必要に応じてカメラ、ネットワークサーバ、及び／または他のソースから受信した番組編成を表してもよい。コンテンツは、メモリ内の、ハードディスク上の、ネットワークサーバ上の、及び／または、他のデジタル、光、またはその他の利用可能な記憶媒体を含む任意のメディアに記憶されてもよい。コンテンツ１０５は、必要に応じて任意の種類の圧縮または非圧縮形式のフォーマットで記憶されてもよく、有効な受信、記憶、検索、及び再生のために必要に応じてエンコードまたはトランスコードされてもよい。
【００２４】
システム１００のいくつかの実施形態は、単に、番組を記憶するため、記憶されたコンテンツ１０５を削除するため、設定またはパラメータを変更するため、及び／または他の所望のタスクを実行するためのメディアサーバ１０４の制御を提供するためにホスト１１６を用いてもよい。他の実施形態では、しかしながら、サーバ１０４からクライアント１０２にメディアコンテンツ１０５のストリーミングまたは他の再生を可能にしてもよい。そのために、メディアサーバ１０４の様々な実施形態は、ネットワーク１１０を介して（例えば、クライアント１０２によって）コンテンツ１０５の表示をサポートするプレイスシフト機能を組み込んでもよい。いくつかの実施形態では、メディアサーバ１０４は、ネットワーク１１０経由でアクセスされる表示画面に自宅のテレビから視聴体験をシフトするために、ＳＴＢ、受信機、ＤＶＲ、メディアプレーヤー、または他のデバイスと連動して働く別個のプレイスシフトデバイスを含む。メディアサーバ１０４のいくつかの実施形態で使用され得るプレイスシフトデバイスの実施例は、カリフォルニア州フォスターシティのスリング・メディア（Ｓｌｉｎｇ  Ｍｅｄｉａ）から利用可能なさまざまなスリングボックス（ＳＬＩＮＧＢＯＸ）製品のいずれかを含むことができるが、他の製品またはサーバ１０４は他の実施形態で用いることができる。多数の異なる種類のプレイスシフトデバイスは一般的に、任意の種類のＤＶＲまたはＳＴＢ、ケーブルまたは衛星番組編成ソース、ＤＶＤプレーヤー、及び／またはそれらに類するもの等の外部ソースからメディアコンテンツを受信することが可能である。他の実施形態では、プレイスシフト機能は、コンテンツの受信または他の機能を提供するのと同じデバイス内に組み込まれている。サーバ１０４は、例えば、トランスコーディングとプレイスシフト機能も提供するハイブリッドＤＶＲ及び／または受信機であってもよい。プレイスシフトの機能、特徴、システム、及び構造の従来例は、米国特許公開第２００６／００９５４７１号明細書に記載されているが、ここに記載される機能は、その特定の出版物に記載されているものに加えて、任意の数の他の技術及び構造で同等に適用することができる。
【００２５】
ホスト１１６は、１つまたは複数のサーバ１０４に命令を提供するために、１つまたは複数のクライアント１０２と対話することができる任意のサーバまたは他のネットワークホストである。様々な実施形態では、ホスト１１６は、以下より完全に説明されているように、番組ガイド情報１１５、及び／または、利用可能なオンデマンド番組編成に関する情報１１２、またはコンテンツ１０５に関する情報を持つそれらに類するものを統合させることも可能にする番組ガイドサーバである。
【００２６】
図１は、任意の数のクライアント１０２及びサーバ１０４と対話するガイドサーバを提供するために用いることができるホスト１１６の一実施例を示す。そのために、システム１００内の各ホスト１１６は、任意のプロセッサ、アーキテクチャ、及び／または、オペレーティングシステムに基づいているサーバコンピュータシステムまたはサービスで実装されてもよい。各ホスト１１６は通常、任意の種類の従来のプロセシングハードウェア１２２、メモリ１２４、入力／出力機能は１２５を用いることによって実装される。様々な実施形態は、専用または共有のハードウェア・サーバを用いて実装されてもよい；他の実装は、アマゾン（ＡＭＡＺＯＮ）、グーグル（ＧＯＯＧＬＥ）、マイクロソフト（ＭＩＣＲＯＳＯＦＴ）、アイ・ビー・エム（ＩＢＭ）、ウブントゥ（ＵＢＵＮＴＵ）、サン・マイクロシステムズ（ＳＵＮ  ＭＩＣＲＯＳＹＳＴＥＭＳ）、及び／または、任意の数の他のプロバイダによって提供される任意のクラウドコンピューティングサービス等の“クラウドコンピューティング”サービスの一環として仮想サーバ機能を利用してもよい。
【００２７】
図１は、便宜のために単一のホスト１１６を示すが、多数の実用的な実施形態は、任意の所望の数の同時接続をサポートするために、複数のホスト１１６のクラスタまたは他の集合を提供してもよい。このクラスタはまた、適切なルーティング、ロードバランシング、アクセス及びセキュリティメカニズム及び又は任意の数の他の機能を組み込んでもよい。様々な実施形態では、各ホスト１１６は、任意のバージョンのＬｉｎｕｘ、ＵＮＩＸ、ＳＯＬＡＲＩＳ、ＮＥＴＷＡＲＥ、ＷＩＮＤＯＷＳ、ＯＳ／Ｘ、ＡＩＸ、及び／またはそれらに類するもの等のオペレーティングシステム１２６を実行する実際のまたは仮想のコンピュータ・システムである。様々なＵＮＩＸ／Ｌｉｎｕｘオペレーティングシステムは、通常、ガイドサーバ・アプリケーション１２８と同様に、必要に応じて任意の数のデーモン、プロセス、アプリケーション、または他のインスタンスモジュールを実行することが可能であるコンピューティング・コアを提供する。例えば、ガイドサーバ・アプリケーション１２８は、オペレーションシステム１２６によって提供される機能を用いてサーバアプリケーション１２８と通信する別個のプロセスまたはインスタンスとして管理されている別個のクライアント１０２と接続して、ホスト１１６上でデーモンとして実行することができる。
【００２８】
ガイドサーバ・アプリケーション１２８は、通常、ホスト１１６が起動あるいは初期化されたときに開始される。様々な実施形態では、アプリケーション１２８は、クライアント１０２との接続が適切に分配され得るように、任意の適切なロードバランサまたは他のルータに適切に登録する。アプリケーション１２８は、その後、必要に応じてクライアント１０２からの接続要求を処理する。図２に示す実施形態では、ガイドサーバ・アプリケーション１２８は、ユーザに便利に提示することができるウェブベースまたは他のフォーマットでクライアント１０２に情報を提供するために、遠隔にあるサーバ１０４及びＷｅｂサーバまたは他のプレゼンテーションロジック１３６の制御のための制御ロジック１３２を含む。様々な実施形態はまた、必要に応じて検索エンジンロジック１３４を提供してもよい；この検索エンジンは、リモートメディアサーバ１０４と同様に、必要に応じて任意の番組ガイド情報１１５、及び／または、オンデマンド番組編成に関する情報１１２を使用して記憶されるコンテンツ１０５に関する情報の統合検索を行ってもよい。このような情報１１２、１１５は、別個のサーバ等の上で実行する任意のデータベースを含むホスト１１６に利用可能な任意のデータベースまたは他のソースから得てもよい。
【００２９】
制御モジュール１３２は、クライアント１０２から受信した要求に応答して、ネットワーク１１０を介して１つまたは複数のメディアサーバ１０４とのセッションを確立するために、任意の適切な番組編成ロジックを含む。このようなセッションは、メディアサーバ１０４から情報を取得するために、及び／または、必要に応じてメディアサーバに命令を提供するために使用することができる。後述するように、メディアサーバ１０４とのセッションは、連絡される特定のメッセージサーバ１１４と事前に確立された接続を有する１つまたは複数のメッセージサーバ１１４を介して開始されてもよい。
【００３０】
ホスト１１６とクライアント１０２との間の対話は、任意の方法で管理されてもよい。様々な実施形態では、クライアント１０２は、ホスト１１６において従来のＷｅｂサーバモジュール１３６から情報を受信することができる従来のＷｅｂブラウザ１０７を使用してホスト１１６と対話する。このような情報は、（例えば、ＡＳＰ、ＪＡＶＡＳＣＲＩＰＴ、Ｃｏｌｄ  Ｆｕｓｉｏｎ、ＰＨＰ及び／または他のコンテンツを使用する、または、ＪＡＶＡ、ＡｃｔｉｖｅＸ、及び／または他のプラグインを使用する）動的またはアクティブなＷｅｂコンテンツの一部として、及び／または、（例えば、ＨＴＭＬ、ＸＭＬ、または同様の構文を使用する）静的コンテンツとして提供されてもよい。様々な実施形態では、プレゼンテーションモジュール１３６は、ユーザが従来のグラフィカルユーザインタフェース（ＧＵＩ）の構文を用いて番組ガイドまたは他の情報と対話することができる、埋め込みアクティブコンテンツを有する従来のＷｅｂページまたは類似のドキュメントを提供する。プレゼンテーションモジュール１３６から提供されたＷｅｂページはまた、メディアプレーヤーアプリケーション１０７を提供してもよく、または、クライアント１０２上に存在するメディアプレーヤーアプリケーション１０７を単に収容して対話してもよい。
【００３１】
ガイドサーバ・アプリケーション１２８は、必要に応じて、任意の代替及び／または追加の機能を提供してもよい。一般的には、ガイドサーバ・アプリケーション１２８は、少なくとも部分的に、任意のプログラミング言語（例えば、Ｃ、Ｃ＋＋等）のソースコードから派生した従来のコンパイル済みオブジェクトコードを使用して実装されている。他の実施形態では、カリフォルニア州サニーベールのサン・マイクロシステムズ（Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ）から入手可能なＪａｖａ環境、または、ワシントン州レドモンドのマイクロソフト・コーポレーション（Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ）から入手可能な．ＮＥＴ環境等の解釈済みまたは他の抽象化環境を利用してもよい。他の実施形態は、他の番組、プログラミング言語、スクリプト言語、開発または実行環境、及び／またはそれらに類するもの等を用いて、ガイドサーバ・アプリケーション１２８の様々なコンポーネントを実装してもよい。このような番組編成は、ガイドサーバ・アプリケーション１２８にアクセス可能な任意のデジタル記憶媒体（例えば、メモリ１２４、大容量記憶装置、リムーバブルメディア、または、他の媒体）上にソースコードまたはオブジェクトコード形式で記憶されてもよい。
【００３２】
上述したように、ネットワークサービス１１６またはクライアント１０２からメディアサーバ１０４に直接接続することは、ネットワーク１１０内の１つまたは複数のファイアウォールまたは他のセキュリティメカニズムの存在、または任意の数の他の要因のために、常に便利であるわけではない場合がある。様々な実施形態では、従って、１つまたは複数のネットワークサーバ１０４との既存の接続をそれぞれ維持することができる任意の数のメッセージサーバ１１４を提供する。各メッセージサーバ１１４は、ホスト１１６との接続で上に記載された任意のハードウェアまたはソフトウェア機能等の、従来のコンピュータサーバのハードウェア、ソフトウェア、及び／またはサービスを使用して実装されている。
【００３３】
メッセージサーバ１１４は、任意の方法でサーバ１０４との永続的な接続を開始するために１つまたは複数のサーバ１０４からの接続要求を適切に受信する。様々な実施形態では、サーバ１０４は、ユニフォームリソースロケータ（ＵＲＬ）において、または容易にネットワーク１１０上に連絡させることができる他のネットワークアドレスにおいて、メッセージングサーバ１１４と比較的一定の接続を維持する。メッセージングサーバ１１４は、単に、例えば、サーバ１０４が起動、リブート、あるいはネットワーク１１０上のアクティビティを開始するときに自動的にアクセスされているＴＣＰサーバであってもよい。このような場合に、サーバ１０４は、メッセージングサーバ１１４に（適切なルーティングまたはロードバランシング機能のサポートを受けて）連絡し、ＴＣＰまたは同様の接続を確立し、その後更なるアクションを待つ。この接続は、ＴＣＰプロトコルの一部である、比較的低い帯域幅の“キープアライブ（ｋｅｅｐ  ａｌｉｖｅ）”機能を使用してキープアライブされてもよい。サーバ１０４からメッセージングサーバ１１４への接続を事前確立することにより、既存の接続は、サーバがファイアウォールまたは他のセキュリティメカニズムの背後にあるにもかかわらず、メディアサーバ１０４への命令または要求を送信するために使用できるよう維持されている。これは、従来のファイアウォールで使用されている多くのルータは、着信ＴＣＰ（及びその他）の接続を禁止している間に信頼されたスペース内で発信される送信ＴＣＰ接続を許可するためである。メッセージサーバ１１４にサーバ１０４からＴＣＰまたは他の接続を確立した後、その既存の接続は、ホスト１１６と独立したセッションを確立するためにサーバ１０４に命令を送信するために使用することができる。この第二のセッションは、ファイアウォールによってブロックされる可能性が少ないメディアサーバ１０４から、別の発信ＴＣＰ（または他のプロトコル）通信として確立することができる。つまり、メッセージサーバ１１４は、サーバ１０４が別々にホスト１１６に連絡するように、及び、ホスト１１６とメディアサーバ１０４との間の適切な通信セッションを確立するために指示する、既存のチャネルを介して命令を送信することができる。この情報がすべての実施形態において存在する必要はないが、この命令は、接続を要求しているホスト１１６または他のサードパーティに関する情報を必要に応じて含んでもよい。そのように指示されると、サーバ１０４は、データ及び命令を交換するために、または、以下により完全に記載するような他のタスクを実行するために使用できるホスト１１６とＴＣＰまたは他のセッションを適切に確立することができる。
【００３４】
また、メッセージサーバ１１４から送信されたメッセージは、いくつかの実施形態では比較的即時に基づいてメディアサーバ１０４に提供することができる。つまり、サーバ１１６が、特定のメディアサーバ１０４に連絡することを望む場合、サーバ１１６は、メディアサーバ１０４がサーバ１１６をポーリングするまで待つ必要はなく、むしろ、ネットワーク１１０を介してリアルタイムまたはリアルタイムに近い時間でメッセージを提供することができる。この文脈の“リアルタイム”とは、刺激（例えば、ユーザ入力、ネットワーク要求等）とアクションとの間に実質的な遅滞なく、刺激に応答して発生する通信または他のアクションを指す。”リアルタイム”通信は、通常、一般的に即時に基づいて発生している間、それにもかかわらず、実用的なデータ通信システムに固有のネットワーク及び処理遅延及び他の遅延に遭遇するとともに原因となる場合がある。
【００３５】
システム１００は、それゆえ、ホスト１１６がクライアント１０２から受信した要求に応答してサーバ１０４とのリアルタイムセッションを確立することができる。クライアント１０２のユーザは、ホスト１１６に関連付けられているＵＲＬまたは他のアドレスに、ブラウザ１０３または同様の番組を指示することによってホスト１１６と連絡する。クライアント１０２からの要求を受信すると、ホスト１１６は、メッセージサーバ１１４経由で適切なメディアサーバ１０４と適切に連絡する。様々な実施形態では、メッセージサーバ１１４は、通信セッションを確立するためにホスト１１６に連絡するようにメディアサーバ１０４に指示する、事前に確立された接続を介してメディアサーバ１０４にメッセージを送信する。通信セッションが確立された後、ホスト１１６は、メディアサーバ１０４に利用可能な番組編成１０５に関する情報を取得することができ、必要に応じてメディアサーバ１０４に任意の命令を提供する。様々な実施形態において、ホスト１１６は、必要に応じて、コンテンツの検索、サーバ１０４のリモートコントロール、サーバ１０４に記憶されている番組編成の閲覧、及び／または、他の機能を提供するために、Ｗｅｂの構造等を用いてクライアント１０２と対話することができる。
【００３６】
次に図２に戻ると、ネットワーク１１０を介してホスト１１６を使用して、クライアント１０２とメディアサーバ１０４との間の制御セッションを確立するための例示的なプロセス２００を示す。一般的に言えば、プロセス２００は、クライアント１０２から受信した要求２０４に応答して、ホスト１０６とメディアサーバ１０４との間のセッション２１２を確立することを含む。セッション２１２は、メディアサーバ１０４の操作、及び／またはその他の目的を制御する命令２１６を提供するために、メディアサーバ１０４から情報２１３を取得するために用いることができる。ホスト１１６はまた、情報を提供するために、情報を受信するために、及び／または、他の目的のために、必要に応じてクライアント１０２と対話する。更なる実施形態はまた、必要に応じて、メディアサーバ１０４からクライアント１０２に、ストリーミング２１８、またはメディアコンテンツの他の共有を提供してもよい。
【００３７】
通常、メディアサーバ１０４は最初に、既存の接続２０２を確立するために、起動時または他の初期化状態においてメッセージサーバ１１４に連絡する。上で述べたように、メディアサーバ１０４は、ドロップまたはリセットされる前の接続に応答して、メディアサーバ１０４のハードまたはソフトの再起動に応答して、及び／または、他の適切な時点で、起動時のメッセージサーバ１１４との接続２０２を初期化してもよい。接続２０２は、その後、後続のリアルタイム通信を可能にするために、メディアサーバ１０４がネットワーク１１０に接続されたままであるように持続する。上で述べたように、接続２０２は、ホスト１１６と、自宅、オフィス、キャンパスまたは他のネットワーク上に配置され得るメディアサーバ１０４との間の従来の通信を妨げる場合がある、ルータまたは他のセキュリティメカニズムを回避するのに有用であってもよい。
【００３８】
クライアント１０２は、任意の方法で対話的なセッションのために初期要求２０４を提供する。様々な実施形態では、クライアント１０２のユーザは、Ｗｅｂブラウザアプリケーション１０３、スタンドアロンのメディアアプリケーション、及び／または、それらに類するものをアクティブ化し、ホスト１０６に関連付けられている公知のＵＲＬまたは他のアドレスを提供する。クライアントアプリケーションは、その後、ホスト１１６によって受信及び処理するためにネットワーク１１０を横切って移送することができる、ハイパーテキスト転送プロトコル（ＨＴＴＰ）または他のクエリをフォーマットする。他の実施形態は、ＨＴＴＰ以外の他のプロトコルまたはフォーマット、または他の従来のＷｅｂフォーマットを用いてもよい。いくつかの実施形態では、要求２０４（及び／または、クライアント１０２とホスト１１６との間の他の通信）は、ユーザを認証するために、及び／または、連絡される特定のメディアサーバ１０４を決定するために用いることができる識別子を含む。いくつかの実施形態では、この識別子がメディアサーバ１０４を直接識別してもよいが、他の実施形態では、代わりに、ユーザＩＤ／パスワードの組み合わせ、デジタル署名、または他の資格情報に基づいて、ユーザまたはユーザのアカウントを識別してもよい。識別されるユーザまたはユーザアカウントに関連付けられたメディアサーバ１０４は、必要に応じて更なるアクティビティのために選択されてもよい。そのために、ホスト１１６は、いくつかの実施形態では、クライアント１０２またはユーザの任意の種類の認証、または、更なるアクティビティのための特定のメディアサーバ１０４を選択するために他のメカニズムを提供してもよい。認証や選択は、ホスト１１６とクライアント１０２間の任意の数のメッセージまたは他の対話を使用して、必要に応じて提供することができる。ホスト１１６は、更に、必要に応じて、ユーザを特定及び認証するために、セキュリティデータベース、認証サーバ、及び／または、他のリソースと対話してもよい。
【００３９】
ホスト１１６は、遠隔に配置されたメディアサーバ１０４とのセッション２１２を確立するために、受信された要求２０４を処理する。図２に示したプロセス２００の実施例では、ホスト１１６は、既存の接続２０２を用いて適切なメディアサーバ１０４に連絡するようにメッセージサーバ１１４に適切に指示する。そのために、ホスト１１６は、メッセージサーバ１１４またはそれに関連するロードバランサに要求２０６を提供し、更なる処理のためにサーバ１１４に要求２０６を適切に転送する。メッセージサーバ１１４は、その後、要求元のホスト１１６にメディアサーバ１０４が応答するように指示する既存の接続２０２を介して、メディアサーバ１０４に要求２０８を提供する。メディアサーバ１０４は、要求元のホスト１１６に２１０を適切に応答するとともに、メディアサーバ１０４及びホスト１１６は、その後、ネットワーク１１０を介して互いにセッション２１２を確立する。セッション２１２は、例えば、任意の簡便な方法で双方向のデータ転送を可能にする従来のＴＣＰセッションであってもよい。他の実施形態は、任意のプロトコルまたは他のフォーマットに従って、任意の種類のステートフルまたは非ステートフルの双方向交換を含む、異なる種類のセッション２１２を提供してもよい。様々な実施形態では、セッション２１２は、要求２０８に応答して確立されているとともに、クライアント１０２がメディアサーバ１０４の制御のための命令を提供し続けている期間にわたって続く、永久的または半永久的な双方向交換である。そのために、様々な実施形態は、複数のコマンド、応答、及び／または他のメッセージが、単一の共通のセッション２１２を使用して、ホスト１１６とサーバ１０４との間で交換されることが可能であってもよい。
【００４０】
セッション２１２がホスト１１６とメディアサーバ１０４との間に確立された後、情報及びコマンドは任意の方法で交換されてもよい。メディアサーバ１０４は、例えば、転送される情報の検索または他の処理を可能にするために、ホスト１１６にコンテンツ１０５に関する情報２１３を提供してもよい。様々な実施形態において、ホスト１１６は、メディアサーバ１０４に記憶されているメディアコンテンツ１０５をリストすることと同様に、利用可能であり得る記憶されているコンテンツ１０５についての任意のメタデータまたは他の記述的情報（例えば、放送時間、番組ガイド情報、現在のプレファレンスまたは他の設定、及び／または、それらに類するもの）を要求する。このような情報２１３は、その後、必要に応じて、ホスト１１６で処理されてもよく、及び／または、クライアント１０２に中継されてもよい。
【００４１】
ホスト１０６はまた、関連情報２１５を提供するために、及び／または、必要に応じて、ユーザから命令２１６を取得するために、クライアント１０２と対話する。そのために、情報２１３はフィルタリングされてもよく、あるいは、情報２１５及びクライアント１０２による最終的な表示として配信するためにホスト１１６で処理される。様々な実施形態では、クライアント１０２とホスト１１６との間の対話２１４は、アクティブ及び／または受動的なＷｅｂコンテンツを、プレゼンテーションモジュール１３６からブラウザ１０３に表示させる、従来のＷｅｂセッションのコンテキスト内で実装されている；他の実施形態は、必要に応じて異なる構造または技術を用いてもよい。
【００４２】
ホスト１０６によって実行される特定の処理は、実施形態によって異なる場合がある。いくつかの実装では、検索エンジン１３４または他のモジュールは、メディアサーバ１０４から受信した情報２１３を検索及び／またはフィルタすることができる。様々な実施形態は更に、番組ガイド情報１１５、オンデマンド番組編成についての情報１１２、及び／または、ハイブリッド検索機能を提供するために適切な他の情報を取得するとともに処理してもよい。例えば、いくつかの実施形態は、今後の放送、及び／またはオンデマンドコンテンツで、メディアサーバ上で記憶されているコンテンツ１０５の特定の番組を識別する複合検索結果を得るために特定の番組をユーザが検索できる場合がある。従って、検索の柔軟性及び能力は、ユーザの唯一の（ユニークな）メディアサーバ１０４から取得した情報２１３を含む異なる種類のデータを占めている複合検索ツールを提供することによって、大幅に強化することができる。
【００４３】
他の実施形態は、クライアント１０２が任意の所望のアクションを実行できるようにするコンテンツ１０５についての情報２１３の一部またはすべてを、クライアント１０２に提供する。様々な実施形態では、クライアント１０２は、遠隔にあるメディアサーバ１０４によって実行される所望のアクションを識別するホスト１１６に命令２１６を提供する。そのようなアクションは、例えば、特定の番組を録画すること、特定の番組を削除すること、設定またはプレファレンスを更新すること、ライブまたは予め録画された番組編成の再生を制御すること、及び／または、それらに類することを含んでもよい。様々な実施形態はまた、クライアント１０２上のメディアサーバ１０４に記憶されているコンテンツ１０５のストリーミングまたは他の表示を容易にしてもよい。このような実施形態では、ホスト１１６は、メディアサーバ１０４からメディアストリーム２１８を受信し、ストリーム２１８をクライアント１０２にリレーする。他の実施形態は、他の方法でストリーミングを提供してもよい。
【００４４】
命令２１６は、任意の方法で対話２１４を介してホスト１１６で受信されてもよい。コマンド２１７は、その後、メディアサーバ１０４の動作及び／または処理機能を制御するために、セッション２１２等を介して、ホスト１１６からリモートサーバ１０４に提供される。コマンド２１７を利用する、クライアント１０２、ホスト１１６、及びメディアサーバ１０４間の様々な対話は、インタフェース３００、４００、及び５００に関して、以下に記載される。一般的に言えば、プロセス２００との接続において示した様々なタスクは、システム１００内の任意の種類のハードウェア、ソフトウェア、及び／または、ファームウェアのロジックを用いて行われてもよい。様々な実施形態では、プロセス２００の様々なステップは、図示したように、ホスト１１６、メッセージサーバ１１４、クライアント１０２、及び／または、メディアサーバ１０４に関連付けられている、メモリ内、またはディスクドライブ、及び／または、他のストレージに記憶されている、ソフトウェアまたはファームウェアの命令に応答して行われる。このような命令は、図２に図示したように、ホスト１１６、メッセージサーバ１１４、メディアサーバ１０４、クライアント１０２、及び／または、それらに類するものの中の任意のプロセッサ及び／または他のプロセシング機能によって実行されてもよい。図２に図示した様々な機能のそれぞれを実装するために使用される特定の手段は、その後、ここに記載される様々なアルゴリズム及び技術を実装する任意のフォーマットで、従来のソフトウェアのロジックを実行する任意の種類のプロセシングハードウェアであることができる。図２に図示した各メッセージは、任意の種類のＴＣＰ／ＩＰ互換性フォーマットまたはプロトコル等のネットワーク１１０と互換性のある任意の従来のまたは独自のフォーマットを用いてフォーマットされてもよいが、他のプロトコルは他の実施形態で用いることができる。
【００４５】
図３〜図５は、いくつかの実施形態で提供され得る様々な機能を示す例示的なインタフェース３００、４００、及び５００を示す。実装された実際の機能は、実施形態ごとに異なってもよいが、これらの機能を実装するために用いられるグラフィカルまたは他のインタフェース要素は、同様に大幅に異なってもよい。そして、インタフェース３００、４００、及び５００のグラフィカル及び空間的レイアウトは、純粋に例示である。インタフェース３００、４００、５００の各々は、任意の方法で生成されてもよい。様々な実施形態では、インタフェース３００、４００及び５００の一部または全部は、クライアント１０２に関連付けられている適切な画面上のブラウザ１０３または別のアプリケーションによって表示される。そのようなインタフェースは、プレゼンテーションモジュール１３５等によって提供されているアクティブ及び／または静的コンテンツを含んでもよい。
【００４６】
図３は、クライアント１０２にガイド情報１１５を提供するために、ガイド情報１１５に基づいて、リモートメディアサーバ１０４との対話を可能にするために使用することができる例示的なインタフェース３００を示す。図３に図示したように、例示的なインタフェース３００は、必要に応じて、メディアプレーヤー３０２、ガイドウィンドウ３０８、現在表示中の番組について情報を表示するウィンドウ３０４、及び／または、他の任意のインタフェース機能を含む。
【００４７】
ガイドウィンドウ３０８は、１つまたは複数のソースから入手可能な番組編成に関する情報を提供する。このような情報は、ホスト１１６との対話２１４を介して得られてもよく、必要に応じて、今後の放送番組に関する番組ガイド情報１１５、メディアサーバ１０４に記憶されているコンテンツ１０５に関する情報、オンデマンド番組編成に関する情報１１２、及び、他の情報を含んでもよい。図３は、例えば、メディアサーバ１０４に関連付けられているＳＴＢまたは他の受信機によって受信することができる番組編成のための番組ガイド情報１１５を示す。様々な実施形態では、視聴者は単に、特定の番組にチューニングしてクライアント１０２にメディアストリーム２１８の番組を提供するようにリモートサーバ１０４に指示するために、現在の放送番組を選択することができる。他の実施形態では、ウィンドウ３０８内の番組をクリックするか、あるいは選択すると、（ウィンドウ３０４等に）表示されている番組または必要に応じて他のアクションに関する追加情報をもたらしてもよい。図３に示す例示的な実施形態は、視聴者の便宜のために（再実行とは対照的に）最初に実行されると考えられている番組の各々に“新しい”ラベルを提供する。しかし、他の実施形態ではこの機能を提供しなくてもよいか、または、ラベルが必要に応じて視聴者のプレファレンスに応じて有効／無効にされてもよい。
【００４８】
図３に図示したウィンドウ３０８の特定のビューは、放送源に対応する番組ガイド情報を示すが、ウィンドウ３０８の他のビューは、メディアサーバ１０４に対して利用可能な記憶されている番組編成１０５、ウェブサイトまたは他のソースから利用可能なオンデマンドコンテンツ１１２、及び／または、他のソースからの他のコンテンツについての情報が表示されてもよい。ガイドウィンドウ３０８は、必要に応じて、利用可能な番組編成の検索結果または他のリストを同等に表示することができる。別のガイドビューは、例えば、ボタン３１４、３１６、３１８等を用いて選択されてもよい。１つまたは複数のスクロールボタン、スライダ、または他のナビゲーション機能３１２は、また、必要に応じて追加情報の表示を可能にするために提供されてもよい。
【００４９】
いくつかの実装では、ウィンドウ３０８に表示される情報が任意の方法で選択及び／またはフィルタリングされることができる。フィルタリング機能３２２は、例えば、特定の番組編成がウィンドウ３０８に表示されること及び／またはメディアプレーヤー３０２によって視聴されることを妨げるようなコンテンツフィルタを視聴者が設定することができる。フィルタリングは、例えば、ペアレンタルコントロール、またはコンテンツのレイティング、他のガイドデータ等に基づく他のフィルタを確立する上で有用であってもよい。フィルタは、一定の基準を満たしている任意の番組編成（例えば、特定の時間帯におけるアダルトまたは暴力的なコンテンツ）をブロックするために適用することができる。他のフィルタは、一定の基準を満たす番組編成だけ（例えば、特定の時間帯における子供向け番組編成だけ）が表示または視聴されるように肯定的に適用されてもよい。このようなフィルタは、任意の種類の便利なインタフェースを使用して、確立及び／または変更されてもよい。更に、フィルタリング３２２は、クライアント１０２上の番組の表示に限定されなくてもよい；逆に、クライアント１０２を使用して確立されている任意のフィルタは、セッション２１２を介してメディアサーバ１０４に提供されてもよく、必要に応じて、他のディスプレイにわたって適用されてもよい。
【００５０】
インタフェース３００は、クライアント１０２またはメディアサーバ１０４に関連付けられた任意の設定または他のプレファレンス３２０を設定または変更するために用いることができる。そのような設定は、視聴者が、例えば、特定の番組編成のジャンル、スポーツ、ネットワーク、チャンネル、俳優／女優、または、他の視聴選択肢についてのプレファレンスを選択することが可能であってもよい。そのような情報は、検索結果を最適化する（または、少なくとも改善する）、または他の目的のために用いられてもよい。プレファレンスは、任意のインタフェース機能３２０等を用いて設定してもよい。
【００５１】
上述のように、検索は、検索機能３２４等を介して提供されてもよい。このような実施形態では、視聴者は、キーワード、タイトル、または他の検索タームを入力する。クライアント１０２は、対話２１４を介してホスト１１６に検索用語を適切に転送し、かつ、ホスト１１６は、検索基準を満たす使用可能な番組編成を識別するために（例えば、検索エンジン１３４を用いて）検索を処理する。様々な実施形態において、ホスト１１６は、完全な結果をクライアント１０２に提供することができるように、複数のソースから番組編成を検索することが可能である。例えば、視聴者が特定の番組を検索する場合、ホスト１１６は、記憶されているコンテンツ１０５内の、（番組ガイド情報１１５によって識別される）今後の放送の、オンデマンド番組編成の、及び／または他の利用可能なソース中の番組の１つまたは複数のエピソードを識別することが可能であってもよい。これらの結果は、視聴者が任意の所望のアクションを実行できるようにするように、ウィンドウ３０８または他の場所で表示するために、ホスト１１６からクライアント１０２に返すことができる。番組が今後の放送で識別されている場合、例えば、視聴者は、今後の上映を録画するためにメディアサーバ１０４に指示することを選ぶことも可能である。番組が、メディアサーバ１０４内のコンテンツ１０５及び／または他のオンデマンドソースから利用可能な場合、その後、視聴者はただちに視聴するための番組を選択してもよい。これらの結果は、任意の方法で相互結合されてもよい。例えば、検索結果は、番組の特定のエピソードがメディアサーバ１０４に記憶されていること、他のエピソードが無料または無料ベースで視聴するためにオンデマンドソースから利用可能であること、及び／または他のエピソードが今後の放送でメディアサーバ１０４に利用可能であることを示すことができる。他の実施形態は、必要に応じて、異なる結果または機能を提供してもよい。
【００５２】
メディアプレーヤーのウィンドウ３０２は、上記のメディアプレーヤー１０７に対応してもよい。このような実施形態では、メディアプレーヤー１０７は、レンダリングされ、選択したコンテンツに基づいて視聴者にメディアストリームを提供する。コンテンツは、このような番組がメディアサーバ１０４または別のソースから現在入手可能である場合、ウィンドウ３０８に列挙されている番組から選択されてもよい。上で述べたように、様々な実施形態は、ガイドウィンドウ３０８から視聴者が番組を選択することができる。クライアント１０２は、その後、選択した番組編成のストリーミングを開始するために、または他の適切なアクションを取るために、メディアサーバ１０４に適切に指示するように、セッション２１２を介してホスト１１６に命令２１６を提供する。メディアプレーヤー３０２はまた、ナビゲーションコントロール３０３に、メディアストリーム２１８のプレイバックの巻き戻し、停止、再生、早送り、あるいは変更を提供してもよい。ナビゲーションコントロールは３０３に関して受信したユーザコマンドは同様に、必要に応じて、ホスト１１６及びセッション２１２を介してメディアサーバ１０４に中継されてもよい。
【００５３】
ウィンドウ３０４は、図３に図示したように、現在選択されたコンテンツに関する情報を表示する。選択した番組がすぐに利用可能な場合、現在選択された番組は、メディアプレーヤーのウィンドウ３０２に現在表示するコンテンツに対応することができる。代わりに、現在選択された番組は、番組ガイドに示された今後の番組、オンデマンド番組、またはウィンドウ３０８等内の他のコンテンツに対応し得る。図３に図示した実施例では、現在選択された番組は、メディアサーバ１０４で現在受信され、即座に視聴するためにクライアント１０２にストリーミングされる。視聴者が番組を録画したい場合、録画ボタン３０６は、命令２１６がホスト１１６に送信されることが可能であるように提供され、番組を録画するようにメディアサーバ１０４に順番に指示し得る。今後の番組は、ガイドウィンドウ３０８内の今後の番組、検索結果等を単に選択し、かつ、その後、インタフェース３００内の録画ボタン３０６または他の録画機能をアクティブ化することによって、同様に録画することができる。そのような指示２１７は、現在のセッション２１２にわたってリアルタイムでメディアサーバ１０４に提供され得るため、録画は、いくつかの実施形態では、比較的即座ベースで開始することができる。
【００５４】
図４は、メディアサーバ１０４に記憶されているコンテンツ１０５を管理するために、いくつかの実装で用いることができる例示的なインタフェース４００を示す。インタフェース４００は、図４に図示したように、メディアサーバ１０４上に記憶された番組編成コンテンツ１０５のリスト４０８と同様に、ディスク、ソリッドステートドライブ、及び／または、メディアサーバ１０４に関連付けられた他のデータ記憶媒体の現在のステータスを提供する情報ウィンドウ４０４を含む。図４に図示した特定の実施例では、番組は、同様に示された利用可能なエピソード４１４の番号で、番組のタイトル別にグループ化される。他の実施形態は、任意の所望の方法で番組編成リスト４０８を整理するとともに、提示してもよい。上記のような検索機能３２４はまた、任意の数の他の追加または代替機能と同数提供されてもよい。
【００５５】
インタフェース４００は、視聴者が、クライアント１０２からＤＶＲのコンテンツまたは他のリポジトリのコンテンツ１０５を管理することができる。特定の番組は、例えば、インタフェース４００の“再生”機能４１２を選択することにより、サーバ１０４から再生されてもよい。このような機能を選択することは、ホスト１１６に送信される命令２１６をもたらし、選択した番組のストリーミングを開始するように、リモートメディアサーバ１０４に指示するために、セッション２１２を介して適切なメッセージ２１７を順番に送信し得る。メッセージ２１７はまた、“消去”機能４１０を用いて生成することができ、示した番組を消去するようにメディアサーバ１０４に順番に指示し得る、ホスト１１６に提供される命令２１６をもたらし得る。メディアサーバ１０４は、その後、リスト４０８及び情報４０４が正確なままであるように、いくつかの実施形態では更新された情報２１３を提供してもよい。更に他の命令２１６は、メディアサーバ１０４の動作を制御するために、いくつかの実施形態において用いる場合がある。携帯電話、コンピュータ、または、ネットワーク対応のリモートコントロールは、例えば、番組編成を選択するために、再生、一時停止、録音、早送り／巻き戻しをするために、または、必要に応じて他の制御機能を実行するために、ホスト１１６と対話することができる。他の特徴及び機能は、任意の数の代替の実施形態において提供してもよい。
【００５６】
図５は、競合している録音からユーザが選択することができる例示的なインタフェース５００を示す。様々な実施形態では、メディアサーバ１０４は、限られた数の同時番組だけを録画することが可能であってもよい。多くの従来のＳＴＢは、例えば、２つの同時番組を受信及び録画するチューナー機能を持つ場合があるが、３番目はない。従って、命令が３番目の番組を録画するために受信した場合、視聴者は、どの番組を録画しないように選択するか要求されてもよい。インタフェース５００は、スキップする番組に対応する適切な機能５０２、５０４、５０６をアクティブ化することによって、どの番組が録画されないかを視聴者が選択できることを提供し得るウィンドウの一実施例を示している。録画の競合の特定は、任意の方法で生じてもよい。様々な実施形態では、メディアサーバ１０４は、情報２１３の一部として、現在計画された録画のリストを提供する。このような情報は、ホスト１１６による要求に応答して提供されてもよく、または、必要に応じて自動的に提供されてもよい。このような実施形態では、ホスト１１６は、競合する録画がクライアント１０２からの命令２１６で要求されたときに識別し、応答してインタフェース５００等を提供する。他の実施形態では、インタフェース５００は、録画の競合が存在することを示すとともに競合を解決するために視聴者に十分な情報を提供する、メディアサーバ１０４からのメッセージに応答して生成される。他のプロセス及び技術は、任意の数の代替の実施形態で定式化されてもよい。
【００５７】
図１〜図５は、従って、ネットワーク１１０を介して、ＤＶＲ、ＳＴＢまたは他の受信機、プレイスシフトデバイス、ファイルサーバまたは他のメディアサーバ１０４をリモートコントロールするために用いることができるシステム１００の少なくとも一つの実施例を示す。いくつかの実施形態では、メディアサーバ１０４がホスト１１６とネットワークセッション２１２を作成するためにメッセージングサーバ１１４で以前に確立された永続的な接続を用いて、メディアサーバ１０４は連絡される：このセッションは、ホスト１１６とサーバ１０４との間のリアルタイム（または、ほぼリアルタイム）の対話を可能にするため、任意の数のコマンド２１７は、メディアサーバ１０４上で実行されるホスト１１６から提供することができる。このようなコマンド２１７は、例えば、Ｗｅｂブラウザ１０３等内に実装される従来のアクティブまたは静的なインタフェース技術を用いて、クライアント１０２でのユーザ入力に応答して提供することができる。様々な実施形態では、メディアサーバ１０４に記憶されている番組編成コンテンツ１０５の録画、消去、再生、または、他の処理を指示するコマンド２１７を用いることができる。他の実施形態は、設定またはプレファレンスを更新するために、メディアサーバ１０４の動作を制御するために、及び／または必要に応じて他のアクションを実行するために、コマンド２１７を用いてもよい。
【００５８】
いくつかの例示的な実施形態は、前述の詳細な説明で提示されているが、代替的で同等ではない膨大な数の変形が存在すること、及び、ここに示す実施例は、発明の範囲、適用、または構成を多少なりとも限定するものではないことを理解すべきである。逆に、様々な変更が、特許請求の範囲及びその法的均等物の範囲から逸脱することなく記載された要素の機能及び配置で行われてもよい。用語“例示的な”とは、任意の数の代替を有し得る１つの実施例、実証、または説明を表すためにここで用いられる。“例示的”としてここに記載されている任意の実装は、必ずしも他の実装より好ましいかまたは有利であると解釈されるべきものではない。
【図１】
2013516108.tif 000003
【図２】
2013516108.tif 000004
【図３】
2013516108.tif 000005
【図４】
2013516108.tif 000006
【図５】
2013516108.tif 000007
【国際調査報告】
2013516108.tif 000008
2013516108.tif 000009