JP2004506351A - リモートテレビジョン再生制御 - Google Patents

リモートテレビジョン再生制御 Download PDF

Info

Publication number
JP2004506351A
JP2004506351A JP2002518078A JP2002518078A JP2004506351A JP 2004506351 A JP2004506351 A JP 2004506351A JP 2002518078 A JP2002518078 A JP 2002518078A JP 2002518078 A JP2002518078 A JP 2002518078A JP 2004506351 A JP2004506351 A JP 2004506351A
Authority
JP
Japan
Prior art keywords
server
data
media device
media
web
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2002518078A
Other languages
English (en)
Inventor
スウェット,ミラード,イー,ザ・サード
ハスティングス,ジェフ
ウッドワード,ドン
マチチュク,クリス,イー
キアナーシ,シャリア
スナー,ガーミンダー
レグニア,エレイン
モハン,スニル
クーネイ,ヒュー,イー
キング,エドワード
ピグノン,フィリッペ
ヌデルマン,マーク
Original Assignee
リプレイティブィ・インコーポレーテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=27559168&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP2004506351(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by リプレイティブィ・インコーポレーテッド filed Critical リプレイティブィ・インコーポレーテッド
Priority claimed from US09/925,121 external-priority patent/US20020080166A1/en
Publication of JP2004506351A publication Critical patent/JP2004506351A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/4104Peripherals receiving signals from specially adapted client devices
    • H04N21/4126The peripheral being portable, e.g. PDAs or mobile phones
    • H04N21/41265The peripheral being portable, e.g. PDAs or mobile phones having a remote control device for bidirectional communication between the remote control device and client device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/4147PVR [Personal Video Recorder]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/4227Providing Remote input by a user located remotely from the client device, e.g. at work
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4334Recording operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4345Extraction or processing of SI, e.g. extracting service information from an MPEG stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4431OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB characterized by the use of Application Program Interface [API] libraries
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47214End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for content reservation or setting reminders; for requesting event notification, e.g. of sport results or stock market
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4782Web browsing, e.g. WebTV
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/482End-user interface for program selection
    • H04N21/4828End-user interface for program selection for searching program descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6156Network physical structure; Signal processing specially adapted to the upstream path of the transmission network
    • H04N21/6175Network physical structure; Signal processing specially adapted to the upstream path of the transmission network involving transmission via Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/84Generation or processing of descriptive data, e.g. content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/858Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
    • H04N21/8586Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot by using a URL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/78Television signal recording using magnetic recording
    • H04N5/782Television signal recording using magnetic recording on tape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/162Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof

Abstract

無関係のウェブホスティングサービスをスタンドアロン型のメディアベースのデバイスと統合するための、方法、システム、コンピュータ媒体、及びその他の実施形態が提供される。ユーザは、インターネット上の様々なポータルを介してウェブブラウザを使用してメディアベースのデバイスに便利にアクセスし制御することができる。一実施形態では、ユーザは、1つ又は2つ以上の無関係のウェブポータルを介してメディアベースのデバイスにアクセスし、これによりメディアベースのデバイスを単一のウェブセッションで制御しアクセスすること、及びメディアベースのデバイス上に格納されている情報と第三者のオンライン情報及びサービスソースから発せられた情報との両方を単一の統合化された提示で見ることが可能となる。
【選択図】図2

Description

【発明の属する技術分野】
本発明は、一般にウェブユーザがコンピュータネットワークを介してメディアベースのデバイス及びアプライアンスに容易にアクセスし及びその制御を行うことを可能にすることに関し、特に共にインターネットと通信可能な状態にあるクライアントユーザインタフェイスからディジタルビデオレコーダのリモート制御を行うための方法、システム、及びコンピュータメディアに関する。
【従来の技術】
従来の技術は、メディアベースのデバイスの入力を直接制御し、又は短距離用(short−ranged)リモートコントローラを使用して制御するものであった。すなわち、一般に、メディアベースのデバイスは、該デバイス自体に配設された制御パネルを使用して、又は該メディアベースのデバイスと通信可能な状態にあるリモートコントローラ(すなわち一般にはハンドヘルド型のもの)を使用して、直接プログラムすることが可能である。該ハンドヘルド型のリモートコントローラは通常は、該デバイスの周囲の短距離からの制御入力を、直接的なハードワイヤード延長ケーブルにより、又は何らかのワイヤレスメディア(例えば赤外線及び無線周波数)により提供する。これらの従来技術は、ユーザがデバイスに物理的に近接している(例えばメディアベースのデバイスと同じ部屋内にいる)場合には良好に機能するが、ユーザが物理的に異なる場所にいる状況には対処することができないものであり、このため、それが短距離であってもデバイスにアクセスすることができない。ユーザが何故デバイスから物理的に離れることになるかに関する理由及び状況は極めて多く存在するが、その詳細は重要ではなく、それよりも、ユーザがメディアベースのデバイスを該デバイスの物理的な場所から離隔した場所から制御することができないという欠点を克服することが重要である。当業者には自明であるように、ハンドヘルド型リモートコントローラは、一層長距離のハードワイヤード及び/又はワイヤレス送信に適合するよう設計することが可能であるが、かかる代替策は依然として不満足なものとなる。これは、送信距離の増大に比例して法外なコストが必要となるからである。
【発明が解決しようとする課題】
結果的に、必要とされているものは、メディアベースのデバイス及びアプライアンスの遠隔地からのユーザによる制御及びプログラミングを可能にする解決策である。該デバイスに対するアクセス及び制御を、便利で一般的で比較的単純な用法で、世界中のあらゆる場所から(例えばウェブブラウザから)行うことができることが望ましい。更に、多数のソース(例えばメディアベースのデバイス及び様々なメディアコンテンツプロバイダ並びにその他のオンラインサービスプロバイダ)からの情報をシームレスに統合してユーザが単一のウェブセッションで情報の組み合わせを利用することを可能にする態様で、ウェブブラウザベースのソリューションを提供することができれば有利である。デバイス及びアプライアンスが、かかる情報及びコンテンツのプロバイダと通信して、それらの間で自動的に情報の送受信を行うことができれば、有益である。最後に、メディアベースのデバイスのリモート制御を可能にするため及び関連情報にアクセスするために必要とされる方法、システム、及びコンピュータメディアはまた、ポータルを含む様々なウェブサーバにも一定の態様で(例えばアプリケーションプログラムインタフェイスを介して)利用可能であるべきである。
【課題を解決するための手段】
本書で説明する本発明の実施形態は、スタンドアロン式のメディアベースのデバイスのアクセス及び制御に関する従来技術の制限を克服するためにワールドワイドウェブ(WWW)を利用するものである。ウェブユーザ、対象となるメディアベースのデバイスを用いたコンテンツプロバイダ、及び一般にメディアベースのデバイスの補助的なサービスやシステム管理やシステムメンテナンスを提供するウェブホスティングサービスプロバイダは、本書に記載の本発明の実施形態により利益を得ることが可能であり、該実施形態は、メディアベースのデバイス及びアプライアンスのための複数のスタンドアロン型のアプリケーションであってそれら自体では互いにうまく動作することのない該複数のスタンドアロン型のアプリケーションの統合を可能にするものである。このため、本書に記載の本発明の実施形態は、ウェブホスティングサービスとして提供することが可能なウェブアプリケーションであって、既存のスタンドアロン型のメディアベースのデバイスをユーザにとって一層有効なものとすることを可能にするウェブアプリケーションを作成する際に有益なものとなる。
本書に記載の本発明の実施形態は、スタンドアロン型のメディアベースのデバイス及びアプライアンスを用いた互いに無関係のウェブホスティングサービスを統合し、及びメディアベースのデバイス及びアプライアンスに対するアクセス及び制御をユーザがインターネット上の様々なポータルを介してウェブブラウザ等のクライアントユーザインタフェイスを用いて便利に行うことを可能にする、方法、システム、コンピュータメディア、及びその他の実施形態からなる。本発明の技術的な特徴の1つは、ユーザが1つ又は2つ以上の互いに無関係のウェブポータルを介してメディアベースのデバイス及びアプライアンスにアクセスして該メディアベースのデバイスを単一のウェブセッションで制御しプログラムすることを可能にする。この本発明の特徴によれば、メディアベースのデバイス及びアプライアンスの両方に格納された情報を含む統合された表現(該表現は一実施形態では、第三者によるオンラインでの情報及びサービスのソースから送出されたものとすることが可能である)がユーザに提供される。すなわち、メディアベースのデバイス及びアプライアンスに制御入力を提供するために該デバイス及びアプライアンスと同じ部屋にいる必要はなく、本書に記載の本発明の実施形態は、従来のプログラミング技術に関連する制限を克服し、ユーザがインターネットを介して全世界にわたり遠隔場所からメディアベースのデバイスにアクセスすることを可能にする。
本発明のもう1つの特徴は、スタンドアロン型のメディアベースのデバイス及びアプライアンスがネットワークと定期的に通信する状態にあるか連続的に通信する状態にあるかにかかわらず該ネットワーク上に動作可能なスタンドアロン型のメディアベースのデバイス及びアプライアンスをシミュレートすることにある。本発明の一実施形態によれば、メディアベースのデバイス及びアプライアンスの仮想的な表現が、ネットワーク上に生成されて、メディアベースのデバイスの動作をシミュレートするようクライアントユーザインタフェイスに提示される。本発明の別の実施形態では、メディアベースのデバイス及びアプライアンスは、ネットワークを介してリアルタイム及びオン・ザ・フライでクライアントユーザインタフェイスと通信する。
本発明の更に別の実施形態によれば、メディアベースのデバイスに格納された情報と無関係のオンラインソースから発せられた情報との両方が組み合わされて統合された表現が生成され、該表現が単一のウェブセッションを介してユーザへ提示され、ユーザは、1つのウェブ表現を介して、該組み合わされた情報にアクセスし見ることができ、及び関心のある特定の情報を選択し操作することができる。かかる本来であれば無関係で本質的に異なる場所に位置する情報ソースとして、テレビジョン、衛星ベースのペイ・パー・ビュー、及びケーブルベースのテレビジョンガイド情報、ユーザプリファレンス及び認証情報並びにその他の関連サービス及び付帯サービスを含む、ウェブホスティングサービス及びオンラインサービスが挙げられる(但しこれらに限定されるものではない)。
本書に記載の実施形態は、コンピュータベースの通信システムにおいて実施されるクライアント/サーバアーキテクチャで実施される。「ウェブという枠組み(web paradigm)」を使用してインターネットを介したメディアベースのデバイス及びアプライアンスのアクセス及び制御を可能とすることにより、本書に記載の本発明の実施形態は、メディアベースのデバイス及びアプライアンスをプログラムするための便利で効率的な方法をユーザに提供する。一実施形態では、メディアベースのデバイス及びアプライアンスは、ディジタルビデオレコーダ(DVR)(パーソナルビデオレコーダ(PVR)としても知られる)と類似した性質を有する対話型テレビジョン装置から構成される。ネットワークを介したクライアントユーザインタフェイスからの制御入力を可能にするためにスタンドアロン型のDVRで一般に用いられるローカル制御インタフェイスをポートする(port)ことにより、本書に記載の本発明の実施形態は、インターネットの更なる普及に起因して次第に慣れ親しむようになる制御入力のための状況を提供する。インターネットの全世界に対する呼びかけ(appeal)に、DVRを制御するためのウェブアプリケーションを結合させることにより、制作及び製造に関する膨大なコストを伴うことのないスケーラブルなソリューションが可能となる。
本発明の技術的な利点の1つは、本発明が、コンピュータベースの通信システムを含んでいる点にある。該通信システムは、(1)バックエンドのクライアント/サーバサブシステムを介してスタンドアロン型のメディアベースのデバイス及びアプライアンスから情報を抽出し、(2)更に別のサーバサブシステムを介してオンラインの及び無関係のウェブホスティングサービスから情報を抽出し、(3)上記様々なソースから抽出された情報を結合させ、(4)該結合させたデータのローカル表現をデータベースに維持し、(5)前記抽出された情報の結合に基づき統合された表現を生成して、仮想的な態様又はリアルタイムな態様でメディアベースのデバイスの動作をシミュレートし、(6)多数のポータルがフロントエンドサブシステムに対してリクエストを行うこと及び統合された表現をAPI(アプリケーションプログラムインタフェイス)を介して受信することを可能にし、(7)統合された表現をクライアントユーザインタフェイスへ送信し、(8)該表現の受信に応じてクライアントユーザインタフェイスからの命令を受容してデータベース及びメディアベースのデバイス及びアプライアンスを更新し、(9)該受信した命令をオンライン及びウェブホスティングサービスから取得した更なる情報と結合させ、(10)該命令及び結合された更なる情報を用いてメディアベースのデバイス及びアプライアンスを更新することが可能である。
本発明のコンピュータベースの通信システムの一態様は、ネットワークコンピューティングシステム、ネットワーク/メディアベースのデータ統合システム、及びメディアベースのコンピューティングシステムの間の通信を可能にする。該ネットワークコンピューティングシステムがデータ統合システムを介してメディアベースのコンピューティングシステムと通信することを可能にするために、APIで実施された一組のプロセスが提供される。一実施形態では、ネットワークコンピューティングシステムは、インターネットを介して提供されるウェブホスティングサービスを含む。該ウェブホスティングサービスは、データ統合システムの外部に位置するものである。同実施形態では、スタンドアロン型のDVRが、メディアベースのコンピューティングシステム内のネットワークに接続される。データ統合システム内で提供されるAPIは、ネットワークコンピューティングシステム内の様々な外部ウェブポータルがメディアベースのコンピューティングシステム内のDVRと通信することを可能にするフレキシブルなアプローチを可能にする。更に、該APIは、ネットワークコンピューティングシステム上のクライアントが、ウェブポータルのローカル環境に固有の一定の構成で、統合された表現をクライアントユーザインタフェイスにおいてリクエストし取得することを可能にする。したがって、該APIは、数百万ものユーザのために広範なウェブサイトにより利用されることになる統合された表現を、単一かつ容易にアクセスできる態様で提示する。該APIは、ユーザアカウントの作成、ユーザログイン、ユーザプリファレンス、リクエストの追加、番組ガイド情報の取得、関心のあるテレビ番組の探索、及び本書で一層詳細に説明するその他の処理を容易化する様々な機能をカプセル化する。
本発明の更に別の技術的な態様では、メディアベースのコンピューティングシステムは、リクエスト、データ、及びその他の制御入力情報をDVRから様々なネットワークを介して通信することを可能にする。DVRはまた、コマンドを受信し、及び様々なネットワークを介して受信したコマンド及びデータに基づきデータ及びステータス情報を送出することが可能である。特に、DVRは、一定の態様で外部ソースから(例えば、好適には多数のウェブサーバを有するコンピュータベースの通信システムを介して)プログラムされることが可能となる。すなわち、DVRをプログラムするために使用される機構である従来のハンドヘルド型リモートコントローラやDVR上に配設されたコントロールパネルの代わりに、外部ソースを使用して該プログラミングを容易化することが可能となる。
本要約及び以下の詳細な説明に記載する特徴及び利点は、全てを網羅するものではなく、当業者であれば、図面、明細書、及び特許請求の範囲を参照することにより、多くの更なる特徴及び利点が自明となろう。更に、本明細書中で使用する用語は、主に読み易さ及び教示を目的として選択したものであって、本発明の要旨を制限するために選択したものではなく、かかる本発明の要旨は、特許請求の範囲に依存して決定する必要がある、ということに留意されたい。
本発明の教示は、以下の発明の詳細な説明を図面に関連して考察することにより容易に理解することができよう。
同図面は、本発明の例示のみを目的としてその好適な実施形態を示したものである。当業者であれば、本書に記載の本発明の原理から逸脱することなく本開示の構成及び方法の代替的な実施形態を採用することが可能である、ということが以下の詳細な説明から容易に理解されよう。
【発明の実施の形態】
序論
クライアントユーザインタフェイスからメディアベースのデバイス及びアプライアンスへのコンピュータベースの通信システムを介したアクセス、再検討、及び選択的な制御入力の提供を行うためのシステム、方法、コンピュータメディア及びその他の実施形態について説明する。以下の記述では、説明を目的として本発明の完全な理解を提供するために多数の特定の細部について説明する。しかし、本発明はこれら特定の細部なしでも実施可能であることが当業者には理解されよう。別の実施形態では、不必要な細部によって本発明が不明瞭にならぬよう、構造及び装置をブロック図形式で示している。
本明細書中における「一実施形態」又は「ある実施形態」なる言及は、具体例に関連して説明する特定の特徴、構造、又は特性が本発明の少なくとも1つの実施形態に含まれることを意味している。また本明細書中の様々な場所にある「一実施形態では」なる記載は、必ずしもその全てが同一の実施形態を指す必要のないものである。
以下に示す詳細な説明の幾つかの部分は、コンピュータメモリ内のデータビットについての操作のアルゴリズム及び図式的な表現を用いて提示したものである。かかるアルゴリズム的な記述及び表現は、データ処理分野における当業者が、自分の研究内容を他の当業者に最も効果的に伝えるために使用する手段である。本書では(及び一般に)、アルゴリズムとは、所望の結果へと導く複数のステップ(命令)の首尾一貫したシーケンスであると考えられる。該ステップは、物理的な量の物理的な操作を必要とするステップである。通常は、これらの量は、格納し、伝送し、結合し、比較し、及びその他の操作を行うことが可能な電気的、磁気的、又は光学的な信号という形をとる(但し必ずしもそうである必要はない)。主として一般的な用法であるという理由で、それらの信号を、ビット、値、要素、シンボル、キャラクタ、項、数といったものと称することが便利である場合があることが分かっている。更に、物理的な量の物理的な操作を必要とする複数のステップの特定の構成を、一般性を欠くことなく(モジュール)コードデバイスと称することが便利である場合があることも分かっている。
しかし、これらの用語及びそれに類似する用語の全ては、適当な物理的な量と関連付けされるべきものであって、これらの量に付与される単なる便利なラベルに過ぎないものである、ということに留意すべきである。特に言及する場合または後続の議論から自明である場合を除き、詳細な説明全体を通して、「処理する」、「算出する」、「計算する」、「決定する」、又は「表示する」といった用語を使用した議論は、コンピュータシステム又はそれに類似した電子的計算装置の動作及びプロセスを指すものである、と考えられる。ここで、該コンピュータシステムは、コンピュータシステムメモリ若しくはレジスタ又はその他のかかる情報記憶装置、送信装置、又は表示装置内の物理的(電子的)な量として表されるデータを操作し変換するものである。
本発明の一態様は、コンピュータプログラムという形で本書で説明するプロセスステップ及び命令の一実施形態を含む。代替的に、本発明のプロセスステップ及び命令は、ファームウェアまたはハードウェアで実施することが可能であり、ソフトウェアで実施する場合には、それをリアルタイムネットワークオペレーティングシステム及びアプリケーションにより使用される異なるプラットフォームへダウンロードして、該プラットフォームから実行することが可能である。
本発明はまた、本書に記載の動作を実行するための装置に関するものである。この装置は、必要とされる目的のために特別に構成することが可能であり、又は汎用コンピュータから構成して、該汎用コンピュータ内に格納されたコンピュータプログラムにより選択的に起動し若しくは再構成することも可能である。かかるコンピュータプログラムは、コンピュータにより読み出しを行うことが可能な記憶媒体に格納することが可能である。かかる記憶媒体は、フロッピィ(R)ディスク、光ディスク、CD−ROM、及び光磁気ディスクを含むあらゆるタイプのディスク、ROM、RAM、EPROM、EEPROM、磁気カード、光学カード(optical card)、特定用途集積回路(ASIC)、又は電子的な命令を格納するのに適したあらゆるタイプのメディアであって(但しこれらに限定されるものではない)、コンピュータシステムバスに結合されるものである。更に、本明細書中で言及するコンピュータは、単一のプロセッサを含むことが可能であり、又は、計算能力の増大のために多数プロセッサ設計を採用したアーキテクチャとすることが可能なものである。
本書に示すアルゴリズム及び表示は、如何なる特定のコンピュータ又はその他の装置にも固有のものとはならない。様々な汎用的なシステムを本書での教示に従うプログラムと共に使用することが可能であり、また必要とされる方法ステップを実行するために特別な装置を構成するのが便利であることが分かっている。かかる様々なシステムに必要とされる構成は、以下の説明から理解されよう。更に、特定のプログラミング言語を参照して本発明を説明することはしない。様々なプログラミング言語を使用して本書に記載の本発明の教示を実施することが可能であり、特定の言語に対する以下の参照は、本発明の実施可能性並びにベストモードを開示するために提供したものである、ということが理解されよう。
更に、特許請求の範囲では、本発明は、情報システム上で動作するもの、又は情報システムと協働して動作するものとして請求されている。該特許請求するような情報システムは、以下の実施形態で後述するようなネットワークと通信可能な状態にあるブラウザ及びユーザインタフェイスアプリケーションからのディジタルビデオレコーダその他のメディアベースのデバイス及び/又はアプライアンスのリモートコントロールを提供するための情報システム全体又はかかるシステムの一部のみとすることが可能である。例えば、本発明は、最も単純な意味では通信ネットワークでありさえすればよい情報システムと共に動作して、メディアベースのデバイス及びアプライアンスに存在するプログラムデータの再検討及び選択を容易化することが可能である。別の極端な場合には、本発明は、無関係のデータソースからデータを探し出し、抽出し、及び格納し、かかるデータをユーザ制御入力を用いて統合して、以下の実施形態で後述するようなメディアベースのデバイス及びアプライアンスをプログラムし更新する情報システム又はかかるシステムの一部のみと共に動作することが可能である。このため、本発明は、最小限の機能を有する情報システムから、本書で開示する全ての機能を提供する情報システムまで、任意の情報システムと共に動作することが可能である。
システムの概要
ここで、本発明の幾つかの実施形態を詳細に参照する。該実施形態の例が図面に示されている。使用可能なあらゆる場所において、同一の又は同様の構成要素を指すために、図面全体にわたり同一の符号が使用されている。
本発明の1つの態様は、メディアベースのデバイス及びアプライアンスがネットワークに対して必ずしも常に接続されない状況に対処するものである。この状況に対処するために、メディアベースのデバイスがあたかもスタンドアロン型の装置として働いているかのようにユーザが経験することになる複製(replication)にとって必要な全ての情報がデータベース内に格納される。このデータベースに格納された情報は、他の関連情報のソースと共に、クライアントユーザインタフェイス(ブラウザ等)へ送るべき統合された表現を構築して、あたかも「ライブ(live)」(すなわちスタンドアロン)モード(すなわちビュー及び制御入力のためのモード)にあるかのように機能しているメディアベースのデバイスの動作をシミュレートすることを可能にする。したがって、本発明は、メディアベースのデバイス及び/又はアプライアンスがピア・ツー・ピアモード又は定期モードでネットワークとの通信セッションに参加している最中であるか否かに関わらず、遠隔場所からの、及びネットワークを介した、メディアベースのデバイス及び/又はアプライアンスに対するアクセス及び制御を可能にする。
以下で説明する一実施形態では、メディアベースのデバイス及び/又はアプライアンスがネットワーク及びデータベースとのコネクションを定期的に確立する際に、クライアントと、データベースと、メディアベースのデバイスとの間で、「バッチ(batched)」処理モードで情報がやりとりされる。この実施形態では、クライアントでメディアベースのデバイスを使用してシミュレートを行うために必要なデータの複製を類推して、ネットワークを介してメディアベースのデバイスを仮想的に構築する(virtualize)ことが可能である。
後述する別の実施形態の場合には、メディアベースのデバイスがクライアントとピア・ツー・ピアの通信セッションを確立する際に、クライアントからのメディアベースのデバイス及び/又はアプライアンスの制御入力及び更新が、オン・ザ・フライで(すなわち、ほぼ瞬時に結果を得ることを可能にするリアルタイムで)実行される。
1.バッチ処理(batched processing)を介したメディアベースのデバイス及び/又はアプライアンスのリモートコントロールの一実施形態
ここで図1Aのブロック図を参照する。同図には、メディアベースのデバイス及びアプライアンスの通信ネットワークを介したリモートコントロールを可能にする本発明によるコンピュータベースの通信システム10の一例が示されている。図1Aにおいて、通信システム10は、ネットワーク/メディアベースのデータ統合システム14(以下、統合システム14と称す)に結合されたネットワークコンピューティングシステム12を含み、次いで該統合システム14が、メディアベースのコンピューティングシステム16に通信可能に結合される。ネットワークコンピューティングシステム12は、多数のユーザが通信システム10を介して通信を行って、メディアベースのコンピューティングシステム16のメディアベースのデバイス及びアプライアンスに対する遠隔場所からのアクセス及び制御を行うことを可能にする。メディアベースのコンピューティングシステム16は、メディアベースのデバイス及びアプライアンスにネットワークシステムを介してアクセスすることを可能にし、これにより、該デバイス及びアプライアンスのスタンドアロン能力が一層向上することになる。統合システム14は、複数のユーザ及びメディアベースのデバイスが通信状態になることが可能な異なるネットワーク間のインタフェイスを提供し、更に、多数のデータソースからのデータを捕捉し、結合し、及び統合して該捕捉したデータをクライアントユーザインタフェイス及びメディアベースのデバイスへ提供するための中央化された収容手段を提供する。
図2は、図1Aの通信システム10の更なる詳細を有する通信システム10Aの一実施形態を示すブロック図である。図2に示す実施形態では、通信システム10Aは、ネットワーク/メディアベースのデータ統合システム14aに結合されたネットワークコンピューティングシステム12aを含み、次いで該データ統合システム14aが、メディアベースのコンピューティングシステム16aに通信可能に結合される。詳細には、及び一例として、ネットワークコンピューティングシステム12aは、リクエスト側のコンピュータ装置に配設されたユーザインタフェイスから行われたリクエストを介して該リクエスト側のコンピュータ装置から供給側のコンピュータ装置へのアクセスをユーザが行うことを可能にする、クライアント−サーバコンピュータモデルに基づくものである。図2に示すように、ネットワークコンピューティングシステム12aに良く適した該クライアント−サーバコンピュータモデルの一実施形態は、1つ又は2つ以上のクライアントコンピュータ18(「クライアントアプリケーション18」及び「クライアント18」と交換可能に使用される)を備え、その各々は、ネットワーク24と通信する22ためのユーザインタフェイス(例えばブラウザ20)を有している。次いで、該ネットワーク24が、1つ又は2つ以上のサーバコンピュータ28−1〜28−n(サーバ28−1,28−2,…,28−nと交換可能に称する)に結合される(26)。本発明を説明する上での便宜上、呼称「サーバコンピュータ」は「サーバ」と交換可能に使用するものとする。次いで、サーバ28−1,28−2,…,28−nが、データライン30により示すように、統合システム14aに対して通信可能に結合される。
図2の実施形態にはまた、メディアベースのコンピューティングシステム16aが、クライアント−サーバコンピュータモデルに基づき同様に示されている。本発明を理解する上での便宜上及びその容易化のため、本書では、メディアベースのコンピューティングシステム16aは、「バックエンドサブシステム16a」及び「バックエンド16a」と交換可能に称することとする。図2の実施形態に見られるように、バックエンドサブシステム16aは、複数のメディアベースのデバイス及びアプライアンス36に結合された(34)複数のRNSサーバ32を含む。本発明の理解の容易化及び便宜のため、「メディアベースのデバイス及びアプライアンス36」は。「メディアベースのデバイス36」と交換可能に称することとする。以下で一層詳細に説明するように、メディアベースのデバイス36は、クライアントコンピュータと同様の通信タスクを実行するための機能を更に含み、RNSサーバ32は更に、クライアント−サーバコンピュータモデルにおけるサーバコンピュータと同様に動作するよう設計されている。以下で一層詳細に説明するように、RNSサーバ32は、ネットワーク38を介してメディアベースのデバイス36と通信することが可能である。
ネットワークコンピューティングシステム12aとバックエンドサブシステム16aとの間で、ネットワーク/メディアベースのデータ統合システム14aは、それらの間に中央化されたインタフェイスを提供する。本発明を理解する上での便宜及び容易化のため、統合システム14aは、前記バックエンドサブシステム16aに対して、「フロントエンドサブシステム14a」及び「フロントエンド14a」と交換可能に称することとする。該フロントエンド14a及びバックエンド16aが協働して、本発明による「My Replay TV(私のTV再生)(MRTV)」システムを構成する。一般に、フロントエンド14aは、様々な本質的に異なるデータソースからの情報を抽出し、捕捉し、格納し、及び統合し、該組み立てられた情報をクライアントユーザインタフェイス(ブラウザ20等)及びメディアベースのデバイス36へ送信する。更に、フロントエンド14aは、様々なソースからのデータをシステム12a,16aにわたり共有することを可能にし、これにより、通信システム10Aを介したメディアベースのデバイス68のユーザ制御入力が容易になる。図2の実施形態では、フロントエンド14aは、データライン42を介してデータベース44に接続されると共にデータライン30を介してサーバ28−1,28−2,…,28−nに結合された中間層サーバ40を含む。該データベース44は、バッチリクエストサーバ48に通信可能に結合され(46)、及びその他のオンラインデータソースに、例えば、データベース50にデータライン52を介して、及びオンラインサービス54にデータライン56を介して通信可能に接続される。バッチリクエストサーバ48は、データライン58を介してRNSサーバ32と通信し、及びライン60を直接介してメディアベースのデバイス36と通信することが可能となっている。
本発明によるネットワーク24の一実施形態はインターネットを含む。しかし、本発明は、ネットワーク24が分散配置されたクライアント18をサーバ28−1〜28−nに接続する限り、多数のトポロジを介して広範な種類のコンピュータネットワークと共に適切且つ良好に動作するものである、いうことが当業者には理解されよう。本発明を理解する上での便宜及び容易化のために、ネットワーク24をインターネット24と称する場合がある。しかし、本発明は、本書に記載するタイプのものに限定されるものではないことが理解されよう。このため、本書の記述が特定タイプのネットワークを規定する範囲において、かかる記述は純粋に例示的なものであって、特定タイプのネットワークに対する本発明の適用可能性を制限することは意図していない。例えば、ネットワーク24として使用することができる他のパブリック又はプライベート通信ネットワークとして、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、イントラネット、エクストラネット、バーチャルプライベートネットワーク(VPN)、及びワイヤレスネットワーク(すなわち、ハードワイヤード通信リンクの代わりに当業界で既知の適当なワイヤレスインタフェイスを用いるもの)が挙げられる。一般に、これらのタイプの通信ネットワークは、他のコンピュータ及び記憶装置に通信可能に結合された、記憶装置、サーバコンピュータ、データベース、及びクライアントコンピュータからなる他のネットワークに通信可能に結合することが可能である。
クライアント18、サーバ28−1〜28−n、サーバ32,40,48、及びメディアベースのデバイス36は、本発明を有益に利用することが可能であり、また本発明のプロセスステップ及びモジュールの一実施形態をコンピュータプログラムという形で含むことが可能である。代替的には、本発明のプロセスステップ及びモジュールは、ファームウェア又はハードウェアで実施することが可能であり、ソフトウェアで実施する場合には、該プロセスステップ及びモジュールを、リアルタイムネットワークオペレーティングシステム及びアプリケーションにより使用される異なるプラットフォームにダウンロードして、該プラットフォームから実行することが可能である。
A.クライアントの例示的な実施形態
クライアント18の各ユーザは、通信システム10Aで作業を行い、ネットワーク24を介してサーバ28−1〜28−nのうちの1つ又は2つ以上にアクセスする。ここで図3のブロック図を参照する。同図には、クライアントコンピュータ18の一実施形態が示されている。該クライアントコンピュータ18は、表示装置64、キーボード66、制御入力装置68、ネットワークコントローラ70、及び入出力装置72にバス74により結合されたコントロールユニット62を備えている。
コントロールユニット62は、算術演算装置、マイクロプロセッサ、汎用コンピュータ、パーソナルディジタルアシスタント、又は表示装置64に電子的な表示信号を提供するよう構成された他の情報アプライアンスを含み得るものである。一実施形態では、コントロールユニット62は、グラフィカルユーザインタフェイスを有する汎用コンピュータからなる。該グラフィカルユーザインタフェイスは、例えば、Java(R)言語で書かれたプログラムをWindows(R)又はUNIX(R)ベースのオペレーティングシステムといったオペレーティングシステムの上で実行することにより生成することが可能なものである。図3の実施形態では、1つ又は2つ以上のアプリケーション、電子メールアプリケーション、スプレッドシートアプリケーション、データベースアプリケーション、及びウェブブラウザアプリケーションが、通信システム10A(及び以下で詳述する10B)の一部として、表示を生成し、情報を格納し、及び情報を取り出す。コントロールユニット62はまた、当業者には理解されるように、TCP/IP、HTTP、LDAP、及びSMTPといった標準的なネットワークプロトコルを用いたファイル(例えばメディアオブジェクト)の分散のためのネットワークといった他のシステムに対する他の従来の接続を有している。
当業者には明らかであるように、コントロールユニット62は、本発明の思想及び範囲から逸脱することなく、図3に示す構成要素よりも多数又は少数の構成要素を含むことが可能である。例えば、コントロールユニット62は、例えば一次又は二次キャッシュといった更なるメモリ、又は1つ又は2つ以上の特定用途集積回路(ASIC)を含むことが可能である。同様に、例えば、イメージ走査装置、ディジタルスチルカメラ若しくはディジタルビデオカメラ、又は電子的なデータをコントロールユニット62に捕捉し及び/又はダウンロードするよう構成され又は構成されていない他の装置を含む更なる構成要素をコントロールユニット62に結合することが可能である。
また、図3に示されているように、コントロールユニット62は、中央処理装置(CPU)76(他の場合には交換可能にプロセッサ76とも称す)、主記憶装置78、及びデータ記憶装置80を含み、それら全てはシステムバス74に通信可能に結合されている。
CPU76は、データ信号を処理し、複雑命令セット計算機(CISC)アーキテクチャ、縮小命令セット計算機(RISC)アーキテクチャ、又は複数の命令セットの組み合わせを実施したアーキテクチャを含む、様々な計算アーキテクチャを有することが可能である。図3には単一のCPUしか示されていないが、多数のCPUを含むことも可能である。
主記憶装置78は、CPU76により実行することが可能な命令及びデータを一般に格納することができる。一般に、主記憶装置78は、例えば、ダイナミックランダムアクセスメモリ(DRAM)デバイス、スタティックランダムアクセスメモリ(SRAM)デバイス、又は当業界で既知の何らかの他のメモリとすることが可能である。図4は、クライアントコンピュータ18のための主記憶装置78Aの特定の一実施形態の更なる詳細を一例として示したものである。図4Aの実施形態では、記憶装置78Aは、好適には、従来のタイプのインターネット(ウェブ)ブラウザアプリケーション82(20)を含むものとなる。該ブラウザアプリケーション82は、インターネット及びプロセスHTML、DHTML、XML、XSL、又はその他のマークアップ言語に対するアクセスを提供し、表示装置64上にイメージを生成する。当業界で既知であるように、ウェブブラウザは、インターネット上のウェブページの閲覧を容易化するものであり、この場合、ユーザは、ウェブページのユニフォームリソースロケータ(URL)を入力し、又はウェブページ上のハイパーリンクをクリックする。該操作により、ウェブページ自体が適当なウェブサーバから取り出される。ウェブブラウザアプリケーション82の例として、Netscape Navigator(R)又はMicrosoft Internet Explorer(R)ブラウザが挙げられる。主記憶装置78Aはまた、ネットワークアプリケーションプログラム85を含み、及び随意選択的に、クライアントコンピュータ18とサーバ28−1〜28−nとの間の通信を可能にするクライアントプログラム86を含む。ネットワークアプリケーション85は、ネットワークコントローラ70と共に機能して、クライアント18とネットワーク24との間の通信を確立する。クライアントプログラム86は、本発明によるメディアベースのデバイス36に関する情報を生成し、編集し、移動し、追加し、探索し、除去し、及び/又は閲覧するために、ブラウザ82と共に機能する(但しブラウザ82がかかる機能を含まない場合)。記憶装置78Aはまた、ワードプロセシングアプリケーション、電子メールアプリケーション、及びスプレッドシートアプリケーションを含む1つ又は2つ以上のアプリケーションプログラム87を制限を伴わずに含むことが可能である。また、主記憶装置78Aは、オペレーティングシステム(OS)84を含む。例えば、OS84は、Windows(R)98/2000ベースのオペレーティングシステムといった従来のものとすることが可能である。他の実施形態では、本発明を更に、ネットワークリソースを管理するために使用されるオペレーティングシステムである任意のコンピュータネットワークオペレーティングシステム(NOS)と共に使用することが可能である。NOSは、多数の入力又はリクエストを同時に管理することが可能であり、またマルチユーザ環境で必要となるセキュリティを提供することが可能である。完全に自立したNOSの一例として、アメリカ合衆国ワシントン州レッドモンド在Microsoft Corporation により製造されるWindows(R)NTが挙げられる。一般に主記憶装置78Aは本例示以外の特徴を含むことが可能であることが当業者には理解されよう。命令及びデータは、本書に記載する技術のうち任意のもの又はその全てを実施するためのコードデバイス(code device)を含むことが可能である。
図3を再び参照する。データ記憶装置80は、CPU76のためのデータ及び命令を格納するものであり、ハードディスクドライブ、フロッピィ(R)ディスクドライブ、CD−ROM装置、DVD−RW装置、フラッシュメモリデバイス、又は当業界で周知の他の何らかの大容量記憶装置を含む1つ又は2つ以上の装置から構成することが可能である。
システムバス74は、コントロールユニット62を介して情報及びデータの通信を行うための共有バスを表している。システムバス74は、業界標準アーキテクチャ(ISA)バス、周辺機器相互接続(PCI)バス、ユニバーサルシリアルバス(USB)、又はそれらと同様の機能を提供するための当業界で周知の他のバスを含む1つ又は2つ以上のバスを表している。
ここで、表示装置64、キーボード66、制御入力装置68、ネットワークコントローラ70、及び入出力装置72を含み、システムバス74を介してコントロールユニット62に結合される、更なる構成要素について説明する。表示装置64は、陰極線管(CRT)、液晶ディスプレイ(LCD)、又はそれらと同様の機能を有する表示装置、スクリーン、若しくはモニタとすることが可能である。代替的には、クライアント18の代替的な実施形態に対応する表示装置64の別の実施形態として、例えば、パーソナルディジタルアシスタント(PDA)のタッチパネル式液晶ディスプレイ(LCD)、及びセルラー電話の表示画面が挙げられる。
キーボード66は、CPU76に対して情報及びコマンド選択の通信を行うためにコントロールユニット62に結合された英数字入力装置を表している。制御入力装置68は、CPU76に対する位置データ及びコマンド選択の通信を行うよう構成されたユーザ入力装置を表している。該制御入力装置68は、マウス、トラックボール、スタイラス、ペン、タッチスクリーン、カーソル方向キー、ジョイスティック、タッチパッド、又はカーソルの移動を生じさせる他の機構を含むことが可能である。ネットワークコントローラ70は、コントロールユニット62をネットワーク24にリンクさせ、多数の処理システムに対する接続を可能にするためのネットワークI/Oアダプタを含むことが可能である。複数の処理システムのネットワークは、LAN、WAN、及び多数の装置が通信することができる相互接続された他の任意のデータ経路を含むことが可能である。
1つ又は2つ以上の入出力装置72がシステムバス74に結合される。例えば、入出力装置72は、オーディオ入力を受信すると共にオーディオ出力を送信するよう構成されたオーディオ装置とすることが可能である。オーディオ入力は、入出力装置72及びネットワークコントローラ70内のマイクロフォンを含む様々な装置を介して受信することが可能である。同様に、オーディオ出力は、CPU76及びネットワークコントローラ70を含む様々な装置から発することが可能である。一実施形態では、入出力装置72は、汎用コンピュータ内で使用するよう設計された汎用オーディオアドイン拡張カードとなる。随意選択的に、入出力装置72は、1つ又は2つ以上のアナログ−ディジタル又はディジタル−アナログコンバータ、及び/又はオーディオ処理を促進させるための1つ又は2つ以上のディジタル信号プロセッサを含むことが可能である。
クライアントコンピュータ18のハードウェアの一実施形態について説明してきたが、図3に示すコンピュータハードウェアの他にも、クライアント18の代替的な実施形態が存在する、ということが当業者には理解されよう。かかるクライアント18と置換することが可能な代替的な実施形態としては、当業者であれば理解されるように、プロセッサベースのポータブルハンドヘルド装置が挙げられる。例えば、クライアント18と置換することが可能なポータブルハンドヘルド装置として、PDA、双方向(two−way)ページャ、電子メール端末、グローバルポジショニングシステム(GPS)、及びモバイル/セルラー電話が挙げられる。かかる代替的な実施形態を本発明と共に使用する場合には、図3の実施形態に関して記載したユーザインタフェイス、通信媒体、及びプロトコルアダプタを修正して、対応するメディアイネーブルド(media−enabled)ポータブルワイヤレス装置の条件を満たすようにすべきである、ということがユーザインタフェイス分野の当業者には理解されよう。例えば、本発明は、HTML、DHTML、POP3、SMTP、SNMP、FTP、NFS、IMAP、NNTP、及びWAPを含む(但しこれらに限定されない)様々なインターネットプロトコルに対するインタフェイスを行う一組のプロトコルアダプタに関する実施形態も開示している。対応する通信プロトコルに関連してメディアイネーブルドポータブルワイヤレス装置上で使用されるようにウェブブラウザ20,82を修正することが可能であることが当業者には理解されよう。更に、これに対応して、データフローライン22が、信号のワイヤレス伝送に適したものとしてワイヤレス通信メディア(例えば無線周波数信号や赤外線信号)を表したものとなることは明らかである。
B.サーバコンピュータの例示的な一実施形態
ここで図3及び図4Bを参照する。ネットワークコンピューティングシステム12aの実施形態に含まれるサーバ28−1〜28−nについて一層詳細に説明する。本発明を理解する上での便宜及び容易化のために、サーバ28−1〜28−nの特徴を一般的に説明するために「サーバ28」と交換可能に称することとする。やはりまた、便宜上、クライアントコンピュータ18及びサーバ28の両者で使用される同様の構成要素に同様の符号を用いている。サーバ28は一般に、コンピュータシステム10Aのフロントエンド14aをクライアント18のユーザに提供することを責務とするものである。一実施形態では、サーバ28は、様々なオンラインサービスを提供するウェブ「スーパーサイト」を意味するものと定義されるウェブポータルとすることが可能である。代替的には、サーバ28は、無関係のエンティティ及びシステム管理者により提供され又はウェブホスティングされるウェブサイトとすることが可能である。これらの特定の実施形態は、ネットワーク24がインターネットである場合に良く適したものとなる。
図3の実施形態では、サーバ28は、好適には、表示装置64、キーボード66、制御入力装置68、第1ネットワークコントローラ及びインタフェイス70、入出力装置72、及び第2ネットワークコントローラ及びインタフェイス73を含み、それらは共にバス74を介して結合される。サーバ28は、やはりバス74に結合されたプロセッサ76、記憶装置78、及びデータ記憶装置80を有するコントロールユニット62を更に含む。図3に示すように、第1ネットワークコントローラ及びインタフェイス70は、ライン26を介してネットワーク24に通信可能に結合され、最終的にはクライアント18に結合される。第2ネットワークコントローラ及びインタフェイス73は、図2にデータライン30により示すように、フロントエンド14aに通信可能に結合される。プロセッサ76は、データ信号を処理するものであり、CISC若しくはRISC又は複数の命令セットの組み合わせを実施したアーキテクチャを含む様々な計算アーキテクチャから構成することが可能である。一実施形態では、サーバ28は、図4Bで説明するような主記憶装置78Bを有するマルチプロセッサシステムを含む。一例として、Windows(R)NT/2000サーバをサーバ28に使用することが可能であるが、Dell Computer Corporation により製造・販売されるDell 1800を含む他のマルチプロセッサシステムもまた本発明と共に適切且つ良好に機能することが可能である。
ここで図4Bを参照する。同図には、サーバ28のための主記憶装置78Bの特定の実施形態の更なる詳細が示されている。図4Bの実施形態では、記憶装置78Bは好適には、オペレーティングシステム88、その他のアプリケーション90、サーバアプリケーションプログラム92(サーバ92)、及び「フロントエンド」サーバアプリケーション94を備え、それら全てはシステムバス74を介して共に通信可能に結合されている。サーバ92は、例えばApache HTTPサーバといった、あらゆる任意の既知のサーバアプリケーションとすることが可能である。フロントエンドサーバアプリケーション94は、APIとの間でリクエスト及びデータの送受信を行うことにより(これについては後述する)中間層サーバ40との通信を確立するためのインタフェイスである。一般に、サーバ28は、フロントエンド14aに応対する(host)ものであり、典型的にはシステム14a,16aに対する外部のウェブサイトである。サーバ28が、様々な汎用ウェブサイト(サイトによっては様々なオンラインサービスを提供する「スーパーサイト」として機能する)を表すことができるものである一方、その他が一層制限された目的のためのものであることより、便宜上、及び不必要な細部により本発明が不明瞭になるのを回避するために、本書ではサーバ28を「ウェブポータル280」と交換可能に称することとする。記憶装置78Bはまた、ワードプロセシングアプリケーション、電子メールアプリケーション、及びスプレッドシートアプリケーションを含む1つ又は2つ以上の他のアプリケーションプログラム90を制限を伴うことなく含むことが可能である。ネットワークアプリケーションモジュール98は、ネットワークコントローラ70の一部であり、サーバ28がライン26を介してネットワーク24と通信することを可能にする。随意選択的に、ブラウザ96を含めることも可能である。上述のように、記憶装置78Bは、プロセッサ76により実行することが可能な命令及び/又はデータを格納する。該命令及び/又はデータは、本書に記載の何れか及び/又は全てを実施するためのコードを含むことが可能である。これらのモジュール88,90,92,94,96は、特に図示しない他のモジュールに加えて、システムバス74によりプロセッサ76に結合され、該プロセッサ76と通信し協働して、サーバ28の機能を提供する。コンピュータシステムの記憶装置78Bの複数のモジュール又は部分として本発明を説明することになるが、該モジュール又は部分は、永久データ記憶装置といった他のメディアに格納することも可能であり、またクライアント/サーバ環境の場合のような複数の異なるコンピュータを有するネットワーク上に分散させることも可能である、ということが当業者には理解されよう。
図2を再び参照する。本発明によれば、ネットワーク24は、サーバ28及びクライアント18並びにその他のデバイスの多数の構成要素間の通信を可能にする。これらは、同じ場所に配置されたもの、同じ場所に配置されていないもの、又は便宜、セキュリティ、若しくはその他の理由のために分散されたものとすることが可能である。クライアント18とサーバ28との間の通信を容易化するために、クライアント−サーバコンピュータネットワークオペレーティングシステム(NOS)を図4Bの記憶装置78B内のオペレーティングシステム88に使用して、ネットワークリソースを管理することが可能である。NOSは、多数の入力又はリクエストを同時に管理することが可能であり、マルチユーザ環境に必要とされるセキュリティを提供することが可能である。オペレーティングシステム88としては、例えば、Windows(R)NT/2000、及びSun Microsystems のSOLARIS(R)コンピューティング環境で使用されるUNIX(R)といった、従来タイプのNOSを挙げることができる。本発明で使用することができる他の従来タイプのオペレーティングシステムとして、LINUX(R)が挙げられる。
C.フロントエンドの例示的な一実施形態
更に図2のブロック図を参照する。フロントエンド14aの一実施形態の更なる詳細について説明する。フロントエンド14aは、サーバ28が通信することになる中間層サーバ40を含む。フロントエンド14aは更に、該中間層サーバ40に結合された(42)データベース44を含み、次いで該データベース44がサーバ48に結合されて、フロントエンド14aからバックエンド16aに「バッチ」で(すなわち定期的に)情報が提供されることになる。様々な他のデータベース50及びオンラインデータソース54が(それぞれライン52,56により)データベース44と通信可能になっている。
本発明の他の特徴を詳述する前に、ここで幾つかの定義を本発明の特定の実施形態(この場合にはメディアベースのデバイス36はDVR37である)に関連して行うこととする。例えば、メディアベースのデバイス36がDVR37である特定の実施形態では、データベース44は、1)複数のDVR37の各々毎に構成されたチャネルのリスト、及び、2)国内放送局による全チャネルの電子番組ガイド(EPG)データを格納する。以下、図10を参照してDVR37の特定の実施形態について詳細に説明するが、以下の定義は、例示のため、及び本発明を理解するために提供したものである。
電子番組ガイド(EPG)は、電子的な形式で表されたテレビ(TV)ガイドデータとして定義され、例えばTurbune Media Services(TMS)といったオンラインデータソースから提供される。これについては、図5のTMS FTPサーバ112に関して以下で説明することとする。従来知られているように、FTPは、ファイル転送プロトコルを意味するものとして定義される。一般に、EPGは、国内放送局により提供されるテレビジョン、ケーブル、及びペイ・パー・ビュー・ショー(show)の放送スケジュールを含む。EPGデータを例示的に表現したものが、図19A及び図19Bに示す再生ガイドである。
チャネルガイドは、以下で図12Aを参照して一層詳細に説明するように、EPGから組み立てられた放送されることになる全てのショーのリストを意味するものとして定義される。図12Aは、構成された複数のチャネルのリストの一例を示すものであり、チャネルガイド190を含んでいる。該チャネルガイドは、ユーザにより選択されて再生ガイド内に現れることになる実際のチャネルを示すチャネルラインナップのリストを含む。一般に、該チャネルガイドは、これから放送される番組及び過去に放送された番組を列挙する対話型のオンスクリーン番組ガイドである。
再生ガイドは、放送時に録画するようユーザにより選択されたショーであって、図19Bを参照して以下で更に説明するように、記憶装置に格納されている、又は格納すべきショーを意味するものとして定義される。一般に、再生ガイドは、ユーザにより生成された記録チャネル及び現在記録されているショーを含む。再生ショー(Replay Show)は、再生ガイドの特定のビューを意味するものとして定義される。この場合には、図19Aを参照して以下で更に詳細に説明するように、記録すべき各番組毎に別個の再生チャネルが割り当てられる。
再生チャネル(Replay Channel)は、再生ガイドの特定のビューを意味するものとして定義される。該ビューは、図12Aを参照して以下で更に説明するように、探索ベースの基準又はチャネルガイドの基準に従って呼び出される保留中の及び完了した番組記録リクエストに関連する記述を示すものである。再生チャネルは、再生ショーのコレクションを含むことが可能である。
再生ゾーン(Replay Zone)は、ユーザにより選択されたカテゴリーにより編成されたテレビ及びビデオ番組を意味するものとして定義される。
i.中間層サーバ
図2を再び参照する。中間層サーバ40は、データライン42により示すように、少なくとも1つのデータベース44に通信可能に結合される。更に、中間層サーバ40は、データライン30により示すように、サーバ28に通信可能に結合される。クライアント18により発せられサーバ28を介して通信されたユーザリクエストは、該中間層サーバ40で受信される。該リクエストは、図16Bに関して後述するように、好適には1つのAPI264で実施された一組の機能に従ってサーバ40により処理される。システム10A全体にわたって使用される複数組のAPIと区別する際の更なる明瞭化を提供するために、中間層サーバ40上にあるAPIをMyReplayTV(MRTV)API264と交換可能に称することとする。一般に、該API264は、中間層サーバ40により受信されたHTTPコールを介してサーバ28によりアクセスすることができる。以下で一層詳細に説明するように、API264は、(1)対話型のメディアベースのデバイス36,37とウェブポータル28との間のフロントエンドサブシステム14aを介したデータ転送を可能にするためのプロシージャ及びファンクションコール、パラメータ、及びフォーマッティング仕様と、(2)動作中のDVR68Bの仮想的な表現をクライアント18に提供すべき統合された態様で生成するために中間層サーバ40上で使用されるソフトウェアとを含む。API264はまた、ネットワークコンピューティングシステム12a中の外部デバイスがフロントエンド14a全体にわたる情報にアクセスすること及びバックエンド16aと通信することを可能にする。
図2に示す中間層サーバ40の特定の実施形態の更なる詳細が図3に示されている。中間層サーバ40は、図3に示すようにクライアント18及びサーバ28に関して説明する概略的なハードウェア構成を有することが可能である。当業者には自明であるように、主として便宜を図って中間層サーバ40の概略的なハードウェアを説明すると共に不必要な細部により本発明が不明瞭にならないようにするために、図3では同様の符号を用いている。このため、サーバ40は、プロセッサ76、主記憶装置78、及びデータ記憶装置80を有するコントロールユニット62を含む。該コントロールユニット62は、バス74を介して、表示装置64、キーボード66、制御入力装置68、1つ又は2つ以上のネットワークコントローラ70,73、及び入出力装置72に結合される。
主記憶装置78Cの特定の実施形態を中間層サーバ40に関して図4Cに示す。主記憶装置78Cは、既述のオペレーティングシステム88を含み、またTomcat(R)(サーブレット)サーバを有するApache(R)ウェブサーバ102上で実行されるJava(R)サーブレットといったサーバツールを含む。Tomcat(R)は、Java(R)サーブレット仕様とJSP(Java(R)ServerPages)仕様とを組み合わせたリファレンス・インプリメンテーション(reference implementation)であり、スタンドアロンモードで実行することができ、又はApache(R)ウェブサーバ102に組み込むことができる。Tomcat(R)を使用することにより、Enterprise Java(R)JSP104及びサーブレット100に関する動作上の定義が、本発明に従って提供されるアプリケーションプログラミングインタフェイス(API)264を駆動することになる。Java(R)サーブレット100は、データベース44との間でHTTPフォーマットでリクエストを受信すると共にXMLフォーマットでデータを送信する中間層サーバ40上で実行されるように書くことができる。かかるJava(R)サーブレット100は、XMLファイルをデータベース44に格納できるデータへと変換し、データベース44からデータを抽出し、及び該抽出したデータをXMLへと変換した後にウェブサーバ28を介して外部のクライアント18へ送るための機能を提供する。好適には、データベースとの対話機能及びXMLへのデータフォーマット変換機能を組み込んだJava(R)サーブレット100が、RNSサーバ32上で実行されるJava(R)アプリケーションと、中間層サーバ40上で実行されるJava(R)サーブレット100との間で共有される。中間層サーバ40の記憶装置78Cは、Java(R)アプレット106、CGIスクリプト108、データベースインタフェイスアプリケーション110、及び(上述したような)他のアプリケーション90といった類のアプリケーションを更に含むことができる。一般に、API264は、Java(R)サーブレット100の制御下で実行される。Apache(R)ウェブサーバ102は、DVR37の制御入力インタフェイスの仮想的な表現を有するHTTPページであってブラウザ20,82上に表示するためのHTTPページを生成することが可能である。
データベースインタフェイスアプリケーション110は、データベース等の広範なリレーショナルコンピューティングシステムのデータにアクセスし、該データを格納し、及び抽出する機能を含む1つ又は2つ以上のプログラムであり、従来の既知の技術により実施することが可能なものである。例えば、データベースインタフェイスアプリケーション110は、オブジェクト・リンキング・アンド・エンベディング・データベース(OLEDB)、オープン・データベース・コネクティビティ(ODBC)、及び/又はJava(R)データベース・コネクティビティ(JDBC)ソフトウェアドライバを使用して到達することができるあらゆるリレーショナルデータソースからスキーマを抽出し定義するプログラムとして実施することができる。
記憶装置78Cは、本発明の思想及び範囲から逸脱することなく、図4Cに示すよりも一層多数又は少数の構成要素を含むことが可能である、ということが当業者には理解されよう。
ii.オンラインサービス及びデータベース
図2のデータベース44について一層詳細に説明する。データベース44は、あらゆるリレーショナルデータベースシステム、テーブル、又はビューを表すものである。好適には、任意のOLEDB、ODBC、又はJDBC互換のデータベースが、本発明に最も適して動作するものとなる。図2には単一のデータベース44しか示していないが、多数の異種データベースを含めることが可能である。かかるデータベースの例として、Microsoft SQLサーバ、Oracle、Informix、DB2、Sybase、及びMicrosoft Accessが挙げられる。中間層サーバ40及びバッチリクエストサーバ48の両者は、データベース44からのデータを格納し抽出することが可能である。例えば、データフロー42に示すような情報の一抽出態様では、JDBCを使用してデータベース44からのユーザプロファイル情報にアクセスしている。
データベース44は、様々なソース(例えばライン56により該データベース44に結合されたオンラインサービス54)から受信した情報を格納する。1つの特定のオンラインサービスが、図5の実施形態に示すように、Tuibune Media Service(TMS)により提供され、この場合には、以下で一層詳細に説明するように、TMS FTPサーバ112が、データベース44への電子番組ガイド(EPG)データのMPREGモジュール114に対する供給を提供する。選択されたEPGデータをRNSサーバ32を介してDVR37にロードするために、クランチャ(Cruncher)モジュール116を配設することが可能である。随意選択的に、データライン52により示すように、他のデータベースをデータベース44に結合して特定タイプの情報をデータベース44に提供することが可能である。例えば、ユーザ認証データベース50をフロントエンド14aに含めて個人プロファイル情報のコレクションに対するユーザ認証を行うことが可能である。本発明に良好に適して動作する1つの特定の所有権を有する認証データベース50がSilknet(R)である。第三者のサーチエンジン又はその他のコンテンツプロバイダを含む更なるオンラインデータソースが、既存の情報、機能、特徴、及びサービスと統合するための更なる情報(例えばコンテンツ、放送、ショー、及び映画等)をデータベース44に提供することが可能であることが当業者には理解されよう。図2及び図5に示すように、データベース44は、ライン46により示すようにバッチリクエストサーバ48に結合される。図2及び図5に示す特定の実施形態に加えて、多数の構成のデータベースが本発明に適して良好に動作することが可能であり、この場合には、データベース44は、他の情報ソースに通信可能に結合されると共に該データベース44に格納されているデータと組み合わせるべき他の情報を受信するハブとして構成されることが理解されよう。
iii.バッチリクエストサーバ
ここで、図2及び図5を参照すると共に時折図13A及び図13Bを参照してサーバ48について詳細に説明する。本発明を理解する上での便宜及び容易化のため、サーバ48を「バッチリクエストサーバ48」と交換可能に称することとする。サーバ48は、「バッチ」リクエストのために配設され、これは、データベース44からサーバ48へデータをプルし(pull)、及び/又はサーバ48からデータベース44へデータをプッシュする(push)ために、データベース44とサーバ48との間で定期的に通信セッションが確立されることを意味している。更に、バッチリクエストサーバ48とRNSサーバ32との間でデータ交換を行うために、それらの間で定期的なセッションが確立される。図2及び図5におけるサーバ48の特定の実施形態は、以降で別の実施形態で説明するような負荷平衡型の分散通信システムにおけるメディアベースのデバイス36とデータベース44との間の直接的かつ連続的なリアルタイム通信セッションではなく、フロントエンド14aとバックエンド16aとの間の「バッチ」通信を提供するものである、ということが当業者には理解されよう。
サーバ48との「バッチ」通信を提供する1つの特徴は、メディアベースのデバイス36の数が増大した際にRNSサーバ32の信頼性に影響を与える可能性を最小限にすることである。RNSサーバ32の信頼性を保持する様々な方法が存在することに留意されたい。当業者には明らかであるように、バッチリクエストサーバ48は、図3と同様の構成要素を含むことができ、それらに関するの説明は既述のところである。
ここで、図6を参照して一例としてのバッチリクエストサーバ48の1つの特定の実施形態について説明する。図6には、本書に記載する「バッチ」処理機能を容易化するためのソフトウェアモジュールを内部に有するバッチリクエストサーバ48の主記憶装置120のブロック図が示されている。図6に示すように、主記憶装置120は、メディアベースのデバイス36にRNSサーバ32を介してデータを「プッシュ」するための第1モジュール122を含む。この機能を達成するために、該モジュール122は、システム10a,10Bを使用するために登録されたメディアベースのデバイス36の全ての性質を帯びたデータを抽出する(245)ためにデータベース44に照会を行う(243)よう設計することが可能である。抽出された登録データを識別するための便利なパラメータは、各デバイス36に関連するシリアル番号を追跡することによるものである。データベース44の照会にとって有用となり得る別のパラメータとしては、例えば、図7の分類図に示すものが挙げられる。
更なる例示を提供するために、モジュール122の一実施形態について説明する。モジュール122は、スクリプトとして実施し、CRONジョブとして呼び出し、結果的に抽出したデータをBerkeleyDBファイル内に配置することが可能なものである。より詳細には、この特定の例の場合には、CRONジョブは、Java(R)プログラムを実行させることができ、該プログラムが、各トランザクションをXMLスニペットへと変換するデバイス36に関するトランザクション情報の照会をデータベース44に対して定期的に行い、最後の照会がメディアベースのデバイス36のシリアル番号により配列されてから以降の全てのトランザクションを含む単一索引付き(single−indexed)BerkeleyDBファイルを構築する。該BerkeleyDBファイルは好適には、XMLでフォーマットされた全てのデバイス36についてのトランザクションを含むものとなる。データが抽出されると、モジュール122は、ロードシェアリングサーバに関する以下の記述において説明するように、RSYNCコマンドを使用してBerkeleyDBファイルを全てのRNSサーバ32にプッシュする。
図6を再び参照する。バッチリクエストサーバ48は更に、RNSサーバ32にトランザクションをプッシュする第2モジュール124を含むことが可能である。該第2モジュール124は、全てのメディアベースのデバイス36についての保留中のトランザクションのリストをデータベース44に照会するよう設計することができる。モジュール122と同様に、モジュール124は、スクリプトとして実施し、CRONジョブとして呼び出し、抽出されたデータをBerkeleyDBファイル内に配置することが可能である。次いで該ファイルをRNSサーバ32の全てにプッシュすることが可能となる。
主記憶装置120は、バッチリクエストサーバ48がRNSサーバ32からプルするファイルのための特定のフォルダを監視するよう機能する第3モジュール126を含むことが可能である。該特定のフォルダは好適には、RNSサーバ32の全てから収集されたトランザクション結果ファイルの全てを含むものとなる。第3モジュール126は好適には、該結果ファイルのフォーマットをXMLフォーマットデータ(データベース44に格納することが可能なもの)へと変換するためのJava(R)プログラムを含む。モジュール122,124と同様に、第3モジュール126は、スクリプトとして実施し、RSYNCコマンドを使用して結果ファイルを定期的に収集するCRONジョブとして呼び出すことが可能である。
D.バックエンドの例示的な実施形態
図2を参照する。フロントエンド14aに対して通信可能に結合されたバックエンドサブシステム16aは、一実施形態では、該フロントエンド14aに結合された1つ又は2つ以上のメディアベースのデバイス36を備える。別の実施形態では、複数のメディアベースのデバイス36が、複数のロードシェアリングサーバ32のうちの少なくとも1つに結合され、該結合されたロードシェアリングサーバ32がフロントエンド14aとの通信を行う。かかる実施形態の更なる詳細について以下で説明する。
i.ロードシェアリングサーバ
図2を参照する。同図には、複数のメディアベースのデバイス36(その各々は制御データライン60により示すようにフロントエンド14aに通信可能に結合されている)を有するバックエンド16aの一実施形態が示されている。該実施形態は、限られた数のメディアベースのデバイス36については適当に良好に動作する。より大量のメディアベースのデバイス36が配設された場合には、バックエンド16aを修正して、増大した通信トラフィック及び負荷に適応させなければならない。
バックエンド16aの別の実施形態に関し、フロントエンド14aと複数のメディアベースのデバイス36との間の通信の負荷平衡をとるための機構について図2を参照して詳述する。図2に示すように、バックエンドサブシステム16aは、複数のロードシェアリングサーバ32のうちの少なくとも1つと通信可能な状態にある複数のメディアベースのデバイス36を含む。便宜上及び例示のため、ロードシェアリングサーバ32を再生ネットワークサービス(RNS)サーバ32と交換可能に称することとする。以下の説明から明らかとなるように、RNSサーバ32の1つの技術的な利益は、それによりシステム10Aを大量のメディアベースのデバイス36へと規模拡大することが可能になると共に、多様なアプリケーションを使用するために必要となる柔軟性及び拡張性が提供されることにある。
制御/データライン34に関し、各メディアベースのデバイス36をRNSサーバ32に直接結合することが可能であるが、好適な態様は、メディアベースのデバイス36をネットワーク38(破線で示す)を介してRNSサーバ32に通信可能に結合することである。こうすることにより、バックエンド16aは、メディアベースのデバイス36の分散サブシステムとして機能する。データ通信ライン58は、RNSサーバ32がバッチリクエストサーバ48を介してフロントエンド14aに結合されていることを示している。本発明は、複数のサーバ32なしでも適当かつ良好に動作するが、メディアベースのデバイス36の数が増大した際に、複数のサーバ32は、負荷平衡を提供するために有益なものとなる、ということに留意されたい。すなわち、メディアベースのデバイス36及びDVR37の数が増大した際に、単一のRNSサーバ32は容易に過負荷となり、このためネットワーク通信に失敗することになる可能性がある。
同実施形態において、バックエンドサブシステム16aを、メディアベースのデバイス36がネットワーク38(一実施形態ではインターネット)を介してRNSサーバ32にアクセスすることを可能にするクライアント−サーバコンピュータモデルに類似したものとすることが可能である。バックエンドサブシステム16aは、例えば、負荷平衡型のドメインネームサービス(DNS)を用いることにより、負荷平衡がとられた一組の分散型RNSサーバ32を構成する。DNSはディレクトリサービスであり、その一般的な機能は、当業界で周知のように、完全な故障許容システム(fault tolerance system)を用いてインターネットホスト名のインターネットプロトコル(IP)アドレスへのマッピングを容易化することである。更に、複数の負荷平衡型DNSサーバは、インターネット上の異なるサーバ会社のウェブホスティングによるものとすることが可能であり、DVR37は、地理的に最適化されたものと置換することを意図したランダムアルゴリズムに基づきインターネット上の適当なサーバ会社に向けることが可能である。
本書で説明するように、RNSサーバ32とDVR37との間の通信を確立することが可能な幾つかの方法が存在する。それらの間のデータフローは、プルモデル、プッシュモデル、又はブロードキャストモデルに分類することができる。プルモデルは、各DVR37がRNSサーバ32に定期的に接続して(例えばダイヤルインして)フロントエンド14aから送信されたリクエストをアップロードしようとすることを意味するものと定義される。DVR37により受信されたリクエストは、「to do」リストに配置することが可能である。プルモデルの例示的な特定の実施形態について以下で説明するが、より高いレベルの概念でのプルモデルの実施は、一般に、DVR37とRNSサーバ32との間における対話、すなわち、セッションを確立するためのDVR37とRNSサーバ32との間のモデムネゴシエーション、ピア・ツー・ピア・ポイント・ネゴシエーション、DVR37により行われるURLリクエスト、データ転送、及び該セッションの終了、を含むことが可能である。これに対し、プッシュモデルは、RNSサーバ32がDVR37殿接触を開始してフロントエンド14aから送信された記録命令の性質を帯びたリクエストをダウンロードすることを意味するものと定義される。例えば、プルモデルと同じPPP接続を使用して呼び出された際に、DVR37は、例えばその呼出側の識別子が所定のRNSサーバ32と一致する場合に、RNSサーバ32とのセッションに参加することができる。代替的には、ブロードキャストタグ付き記録命令(broadcast tagged recording instruction)を使用することが可能である。例えば、垂直帰線消去期間(VBI)を使用して、ブロードキャストデータストリーム中に命令を埋め込むことができる。DVR37は、そのタグ(例えばシリアル番号)を検出すると、関連する命令をその「to do」リストに格納する。この実施形態では、DVR37は好適には、RNSサーバ32によりブロードキャストされたデータを受信するために特定のブロードキャストチャネルに常に同調するものとなる。
RNSサーバ32がフロントエンド14a又はその他のオンラインデータソースから情報を取得することを可能にする幾つかの方法が存在し、該情報は最終的にはDVR37に提供される。かかる代替例について説明する。最初に図2の通信システムを参照する。フロントエンド14aは、バッチリクエストサーバ48及びデータライン58を介してRNSサーバ32にデータをプッシュすることができる。定期的に、バッチリクエストサーバ48は、保留中のリクエストの全てのデータベースをRNSサーバ32の全てにプッシュする。一実施形態では、該保留中のリクエストは、BerkeleyDBファイル中に収容することができる。更に、別のBerkeleyDBファイルが全ユーザのリストを含むことが可能である。該ユーザは、システム10A,10Bを介してDVR37を使用するために各ユーザに対応するDVR37を登録した者である。DVR37は、それに対応するシリアル番号が埋め込まれたHTTPリクエストをRNSサーバ32へ送出し、該DVR37がシステム10A,10Bと相互に動作する(interoperate)よう構成されているか否かに関する判定が行われる。本書で説明するように、DVR37は、RNSサーバ32にURLを送ることにより、保留中のリクエストのリストを提供するようRNSサーバ32に命令することが可能なものである。
RNSサーバ32は、図3の場合と同様の構成要素を含むことができ、それらに関する説明は既述のところである、ということは当業者には自明であろう。RNSサーバ32の主記憶装置130の1つの特定の実施形態を一例としての図8を参照して説明する。DVR37がRNSサーバ32とのセッションを最初に確立する際に、シリアル番号が埋め込まれたURLがDVR37からRNSサーバ32に送られる。図8に見られるように、主記憶装置130は、DVR37がシステム10A、10Bと相互に動作するよう正しく登録されているか否かを検証する機能を提供する第1モジュール132を含む。例えば、モジュール132は、Perl(R)スクリプトで書かれたCGIであって(登録済の全DVRのシリアル番号のリストを含む)BerkeleyDBファイルを解析してHTTPリクエスト中に埋め込まれたシリアル番号と該BerkeleyDBファイルとの突き合わせを行うCGIとして実施することが可能である。更に、DVR37は、レスポンスのリストをリクエストする別のURLをRNSサーバ32に送ることができる。第2モジュール134は、特定のDVR37に関する保留中のリクエストを判定し抽出する機能を提供する。例えば、モジュール134は、Perl(R)スクリプトで書かれたCGIであってBerkeleyDBファイルを解析してHTTPリクエスト中に埋め込まれたシリアル番号と該保留中のリクエストのリストとの突き合わせを行うCGIとして実施することが可能である。保留中のリクエストを探し出した場合には、モジュール134は、それに関連する情報を抽出して対象となるDVR37に送信する。
また、DVR37は、RNSサーバ32から受信したリクエストに対するレスポンスのリストを示す別のURLを特定のRNSサーバ32に送ることができる。該レスポンスのリストがRNSサーバ32により受信される際に、該レスポンスをレスポンスログファイルに結合するために別のモジュール136が使用される。第3モジュール136もまた、Perl(R)スクリプトで書かれたCGIとして実施することが可能である。該レスポンスログファイルは、多数のDVR37からのレスポンスを結合するものであり、分散されたバックエンド16aの規模が拡大された場合に顕著に大きなものとなり得る、ということが理解されよう。したがって、定期的に、RNSサーバ32は、レスポンスログファイルをバッチリクエストサーバ48を介してデータベース44にプッシュする。これにより、レスポンス(例えば、新しいチャネルラインアップ、新しい再生ガイド、特定のDVR37により正しく処理されたリクエストのリスト、及び対応するエラー等を含む)でデータベース44を更新することが可能となる。プッシュ機能を実施するために、例えば、CRONジョブを呼び出す標準的なUNIX(R)コマンドを定期的に(例えば15分毎に)実行するよう含め、これにより、結合されたリストをバッチリクエストサーバ48にプッシュすることが可能である。UNIX(R)に精通した者により従来知られているように、CRONジョブは、指定された時間間隔でシェルコマンドの実行を取り扱うものである。
ここで図5を参照する。同図には通信システム10Bの別の実施形態が示されている。図5は、コンバータモジュール116(クランチャモジュール116と交換可能に称することとする)及びMREPGモジュール114に結合されたTMS FTPサーバ112が追加されている点を除き、図2と同様のものである。該TMS FTPサーバ112は、ローカライズされた(localized)EPGフォーマットへと変換される番組データのオンラインデータソースである。該サーバ112から取り出されたEPGがデータベース44へ送られると共に、該EPGの選択された部分が、クランチャモジュール116及びRNSサーバ32を介してDVR37へと送られる。
図9のブロック図を参照する。同図には、TMS FTPサーバ112からDVRへの選択されたEPGデータのデータフローが示されており、かかるEPGデータは、TMS FTPサーバ112からクランチャ116を介してRNSサーバ32に向かってプッシュされる。一実施形態では、クランチャモジュール116は、TMS FTPサーバ112からEPGデータを定期的に収集して、チャネルガイド及び再生ゾーンデータを構築し、かかる情報をRNSサーバ32へ供給する。特定の実施形態では、クランチャ116は、定期的に起動してサーバ112からTMSデータファイルをダウンロードするCRONジョブを実行するよう設計することができる。該クランチャ116は、EPGデータを、DVR37に適したフォーマットを有する多数の個々のファイルへと「クランチ(crunch)」する(すなわち分解する)スクリプト(例えばPerl(R)スクリプト)を使用して実施することが可能である。これらのフォーマットされたファイルはまた、その中に挿入されたSUZUKIデータを含むことができる。SUZUKIデータは、関連する識別タグを有するジャンルベースのショーのコレクションを含むものである。次いで、該タグをシステム10Bにより使用して、再生ゾーン機能としての便宜のために参照される特定ジャンルのショーをフィルタリングしてユーザが選択できるようにすることが可能である。クランチャ116の制御下で、UNIX(R)において知られているRSYNCコマンドを使用して、これらファイルをRNSサーバ32に分配することができる。従来既知であるように、RSYNCコマンドは、セキュアなチャネルを使用したデータ転送を可能にするものである。
本書に記載するプッシュモデル、プルモデル、又はブロードキャストモデルの場合、RNSサーバ32は、クランチャ116からこれらのファイルを受信すると共にフロントエンド14aからリクエストを受信する分散された負荷平衡型の一組のサーバである。DVR37とそれに対応するRNSサーバ32との間でインターネット接続が確立される場合には、該DVR37は、RNSサーバ32に格納されているデータを受信する。例えば、チャネルガイド内のあらゆるショーは、該ショーに指定された一意の定義であってフロントエンド14aからDVR37にプッシュされる定義に関連付けされる。DVR37は、このデータを、該DVR37がクランチャ116から受信した他のデータに基づき突き合わせする。DVR37は、そのチャネルガイド内の番組データのリストを含み、前記突き合わせ及びクランチャ116から受信したデータに基づいてそのチャネルガイドを構築する。
データベース44へのEPGデータのアップロードに関し、MREPGモジュール114は、ソフトウェアにより実施されたバッチプロセスを含み、TMS FTPサーバ112からデータを抽出してデータベース44を更新する。MREPGモジュール114は、TV番組ガイドコンテンツをデータベース44に提供することを責務とする。該MREPGモジュール114はまた、ユーザが、タイトル、叙述、及び/又はクレジットに基づいてショーを見つけることを可能にする探索機能を提供する。更に、MREPGモジュール114は、データベース44内のEPGデータを維持すること、及びかかるデータをTMSからの供給に基づき最新の状態に保つことを責務とする。ブラウザ20に送られるチャネルガイドは、データベース44からのEPGデータから構築されてMREPGモジュール114によりロードされる。DVR37は、クランチャモジュール116により構築されRNSサーバ32を介してロードされたチャネルガイドを有する。したがって、2つのバージョンのチャネルガイドが存在し、すなわち、その一方がデータベース44内に、他方がDVR37内に存在する(但し何れもTMS FTPサーバ112を出所とするものである)。このチャネルガイドに関するデータベース44及びDVR37内のTMSデータのデュアルロードは、DVR37に必要なチャネルガイドデータのみを提供して該DVR37における不必要なメモリ割り当てを回避することを目的としたものである。
ここで図9の実施形態を参照する。同図において、ログミル(Log−Mill)モジュール140は、複数の管理上のシステムタスクを蓄積するシステムログファイルをそれぞれ含む複数のDVR37からのログの全てを収集する。このシステムログファイルは、そのサイズが次第に大きくものであるため、DVR37のデータ記憶装置からの記憶スペースの解放が達成される。該システムログファイルをRNSサーバ32にアップロードするためのアプリケーションをDVR37上に含ませることが可能である。システムログファイルがRNSサーバ32にアップロードされた際に、ログミルアプリケーションモジュール140は、該システムログファイルをデータベース142にアーカイブすることが可能である(図13Bの符号257,259を参照のこと)。このようにする一例として、ログミルモジュール140が、定期的に起動されるCRONジョブであって、RSYNCルーチンを使用して全てのRNSサーバ32にわたり分散されたシステムログファイルを取り出し、それらを併合してデータベース142に供給する、CRONジョブを実行することが挙げられる。データベース142はデータベース44とは別個のものとすることが可能であることが理解されよう。データベース142がOracleから提供される一実施形態では、 SQL*Loadコマンドがログミルモジュール140により呼び出されて、システムログファイルがエントリとしてデータベース中にアーカイブされる。システムログファイルをアーカイブすることにより、利用状態を追跡することが可能となり、すなわち、DVR37の特定の機能を利用しているユーザの数を追跡することが可能となる。ログミルはまた、算術演算、請求書作成、将来の予測、立案、並びにターゲットとなる広告、製品、及びコンテンツに使用するための情報を収集するのに有用である。
ii.メディアベースのデバイス及びアプライアンス
メディアベースのデバイス及びアプライアンス36について、例示として図3に示すハードウェアの一般的な実施形態を参照して(及び時折図13A,13Bを参照して)一層詳細に説明する。本発明を理解する上での便宜及び容易化のため、図3(その一部はメディアベースのデバイス及びアプライアンス36に適用可能なものである)に関して以前に説明したものと同様の構成要素には同様の符号を付してある。図3の実施形態において、メディアベースのデバイス36は、制御入力装置68、第1ネットワークコントローラ及びインタフェイス70、及び入出力装置72を含み、それらは共にバス74を介して結合されている。随意選択的に、メディアベースのデバイス36は、表示装置64に結合することが可能であり、又は表示装置64を含むことが可能であり、また共にバス74を介して結合された第2ネットワークコントローラ及びインタフェイス73及びキーボード66を含むことが可能である。該デバイス36は、本書で明示的に記載するよりも多数又は少数の構成要素を含むことが可能である、ということが理解されよう。メディアベースのデバイス36は更に、やはりバス74を介して結合されたプロセッサ76、記憶装置78、及びデータ記憶装置80を有するコントロールユニット62を含む。
図2及び図5の一実施形態によれば、第1ネットワークコントローラ及びインタフェイス70は、フロントエンド14aのバッチリクエストサーバ48に対するデータライン60を介したメディアベースのデバイス36の通信可能な結合を容易化することが可能である。随意選択的に、第2ネットワークコントローラ及びインタフェイス73を本書で明示的に示していない他のネットワーク及びデバイスに結合することも可能である。プロセッサ76は、データ信号を処理し、クライアント18及びサーバ28に関して上述した様々な計算アーキテクチャを含むことが可能なものである。
ここで図4Dを参照する。同図には、メディアベースのデバイス36に関する主記憶装置78Dの特TIEの実施形態の更なる詳細が示されている。図4Dの実施形態において、主記憶装置78Dは好適には、オペレーティングシステム84、その他のアプリケーション87、及びネットワークアプリケーション85(それらの機能については既述のところである)を含むものとなる。主記憶装置78Dは更に、ビデオキャプチャエンジン150、トランザクションハンドラ(アプリケーション)プログラム152、及びリクエストハンドラ(アプリケーション)プログラム154を含み、それら全てはシステムバス74を介して通信可能に結合されている。随意選択的に、ブラウザ82を含めることが可能である。
上述のように、主記憶装置78Dは、プロセッサ76により実行することが可能な命令及び/又はデータを格納する。該命令及び/又はデータは、本書に記載の複数の技術のうちの何れか又は全てを実行するためのコードから構成することが可能である。モジュール82,84,85,87,150,152,154は、特に図示しない他のモジュールに加えて、システムバス74によりプロセッサ76に結合され、メディアベースのデバイス36の機能を提供するよう通信し協働する。コンピュータベースのシステムの記憶装置78Dの複数のモジュール及び部分について本発明を説明するが、該モジュール又は部分は、永久データ記憶装置といったメディアに格納することも可能であり、またクライアント/サーバ環境といった複数の異なるコンピュータを有するネットワークにわたり分散させることも可能である、ということが当業者には理解されよう。
一般に、メディアベースのデバイス36は、図4Dに関して説明する機能、又は明示的には図示しないがそれ等価な機能並びに追加の機能を含むことが可能である、ということに留意されたい。本発明は、広範なデバイスで実施することが可能なものであり、本書に記載する実施形態に限られたものではない。メディアベースのデバイス36の例として、家庭用機器、対話型テレビ、ポータブルネットワークテレビ、テレビ機能を有するポータブルネットワークデバイス、又はセットトップ用アプリケーション及びデバイスを挙げることができる(但し、これらに限定されるものではない)。
図10を参照する。同図には、本発明での使用に良く適した1つのタイプのセットトップデバイスが、例えばReplayTV, Inc.(Mountain View, California)から販売されているようなディジタルビデオレコーダ(DVR)37を含む対話型テレビサブシステム160として示され実施されている。便宜上、DVR37を「ビデオ再生システム37」と交換可能に称することとする。図4の実施形態では、DVR37は、放送プロバイダ164からの放送コンテンツ(すなわち番組)を見るためのテレビベースの表示装置162に結合される。番組166(例えばテレビ番組)は、国内放送局164から受信され、他のコンテンツ、データ、及び制御データ168(例えば、ネットワークからの広告、番組ガイド、及び制御入力等)と共に、表示装置162に渡される。
図3及び図4Dを参照する。DVR37は、クライアント18に関して上述した機能と同様の機能を有するクライアントベースのシステムである。例えば、DVR37は、到来する番組信号166を格納するために使用されるハードドライブ等のデータ記憶装置80を含む。次いで、該格納された信号は、後ほど見ることができ、又は直ちに記憶媒体80から見ることができる。DVR37は、プロセッサ76及び記憶装置78D(又は該記憶装置の機能を割り当てるために使用される同様の構成要素)を含み、該特定のデバイス37に関する上述の機能を実施する。更に、DVR37は、コンテンツ166の最初のソースから切断されたとき、すなわち、スタンドアロンデバイスとして機能しているときを判定することが可能である。
本発明による一実施形態では、DVR37は、ネットワークサーバ(一特定実施形態においてロードシェアリング「RNS」サーバ32として本書で説明されているもの)からのデータライン34により示すように、ネットワークを介して制御情報168を受信する。制御ライン34は、DVR37を個々のRNSサーバ32に結合する通信リンクが存在することを示している。コンテンツ情報166としては、電子広告、電子番組ガイド、認証情報、クライアント18から発せられた制御入力、及び本書に記載するオンラインソース及びデータベースからの他のタイプのデータが挙げられる(但し、これらに限定されるものではない)。レスポンスにおいて、DVR37は、広告の感想、取引情報、及び更新されたプログラミング及びプロファイル情報といった制御情報168をサーバ32,48に送信することが可能である。サブシステム160は、ケーブルコンテンツ、テレビコンテンツ、高品位TVコンテンツ、ディジタルTVコンテンツ、ペイ・パー・ビュー・コンテンツ、及びネットワーク(インターネットを含む)を介して放送されたコンテンツを含む(但しこれらに限定されない)様々なタイプの番組を受信することが可能である、ということが理解されよう。また、表示装置162は、ディジタル又はアナログテレビ、インターネットアプライアンス、セルラー装置、又はワイヤレス装置を含む(但しこれらに限定されない)あらゆる特定のタイプの表示装置とすることが可能である、ということが理解されよう。DVR37及び表示装置162は、図示のように別個の物理的な装置とすること、共に一体化されたもの、又は図示するよりも更に多くの機能ユニットに分割されたものとすることが可能である。
DVR37の一実施形態は制御ライン34,60の1つ又は2つ以上を実施するための電話線を含むことが理解されよう。例えば、かかる制御ライン34,60は、RJ−45(Registered Jack−45)コネクタを含むことが可能であり、別の実施形態では、Ethernet(R)接続又はトークンリングType3通信を含むことが可能である。図2に示すシステム10Aでは、情報168は、「バッチ」モード動作において説明するように、規則的に(例えば24時間毎に)DVR37との間でやりとりされる。別の実施形態では、データ制御ライン34,60としてインターネット接続を使用して、規則的に又は一層頻繁に接続を行う。例えば、図5に示すシステム10Bの更なる実施形態では、情報168は、リアルタイムモードでほぼ瞬時の結果を伴ってDVR37とクライアント18との間でやりとりされる。制御ライン34,60の更に別の実施形態は、当業界で周知のワイヤレス通信媒体とすることが可能である。
図10はまた、サブシステム160を制御するために使用されるリモートコントロール装置170を示している。典型的には、DVR37は、装置のハウジング上に配設されたタッチパネルという形の制御入力を含むものとなる。後述するように、本発明の一実施形態は、通信システム10A,10Bを介してイネーブルにされるメディアベースのデバイス36のユーザ制御を含むものとなる。例えば、一特定実施形態では、サブシステム160はインターネットを介して制御することができる。
本書に記載する実施形態が動作する文脈は、個々のユーザのDVR37に関するものであるが、本発明は、対話型テレビサブシステム160に限定することを意図したものではない。例えば、他のタイプのメディアベースのデバイス及びアプライアンス36が図2に示されている。しかし、一般的には、DVR37の場合には、ユーザは、以前に記録された「録画された(taped)」コンテンツをハードドライブ若しくはその他の記憶媒体80から再生することにより、又は自分のテレビ(若しくはその他のコンテンツソース)の電源を入れて見るべき番組若しくはショーを選択することにより、番組コンテンツを選択する。選択された番組コンテンツがDVR37により受信されると、該コンテンツが先ず記憶媒体80に格納され、次いでテレビモニタ64といった表示装置162上に表示される。
図4Dを再び参照する。DVR37の主記憶装置78Dで実行されるソフトウェアアプリケーション及びプログラムを表す様々なモジュールについて本発明の理解を容易化するために図10を時折参照して説明する。DVR37は、1つ又は2つ以上の番組166(ビデオ放送等)を放送するテレビ、ケーブル、又はペイ・パー・ビュー・放送局といった国内放送局164からの信号を受信する。該放送は、記憶装置78D内のビデオキャプチャエンジン150により受信される。該ビデオキャプチャエンジン150は、キャプチャした番組コンテンツをその受信時に記憶媒体80に渡し、及びユーザにより選択された際に表示装置162に渡す。ビデオキャプチャエンジン150は、(必要に応じて)複数の考え得る放送番組のうちの何れを(例えばチャネルを変えることにより)ユーザが選択したかを示すためにチューナ(明示的には図示しない)に結合することが可能である。次いでユーザは、番組166をその受信中に表示させること又は後で再生するために番組166をセーブすること(又はその両方)ができる。
クライアント18におけるユーザには、一般に、ガイドへの番組リストの追加、ガイドからの番組の削除、ガイド上の番組リストの更新、DVR37からのガイドの取得、及びDVR37からのチャネルガイドの取得、を行うための機能が提供される。一実施形態では、及び一例として、クライアント18におけるユーザにより提供されるこれらのタイプの制御入力リクエスト、コマンド、及び命令は、フロントエンド14a内のトランザクションファイルに格納し、及びバックエンド16aにプッシュすることが可能であり、最終的にはRNSサーバ32を介してDVR37に送信される。
図13A及び図13Bのシーケンス図を時折参照して「バッチ」モードの実施について説明する。定期的に、DVR37は、ネットワーク(例えばインターネット)にダイヤルして(249,253)、トランザクションファイルのダウンロード(251,255)をDVR37にリクエストする。この通信を容易化するために、DVR37は、RNSサーバ32に対する接続が行われる頻度及び時期を一般に制御するネットワークアプリケーションモジュール85を含む。該ネットワークアプリケーションモジュール85はまた、RNSサーバ32との間で如何なるデータを送受信するかを制御する。
一実施形態では、DVR37は、リクエストリストを解析して各リクエスト毎にファイルを作成することによりRNSサーバ32からのリクエストを取得することができる。該ファイルは、コンテンツに従って適当に名前を付けることができ、またXMLにフォーマットすることができるものである。リクエストハンドラ154は、新しいリクエストがDVR37に到着したときが知らされる。これら機能を実行するために、及び一例として、制御ライン34,60が、インターネットとの通信のようなネットワーク接続であるものと解釈した場合、DVR37は、インターネットとポイント・ツー・ポイント・プロトコル(PPP)接続を確立し、httpコマンドを介してRNSサーバ32と通信する。DVR37は、図4Dの主記憶装置78Dに示すように、HTTP/PPPクライアントモジュール156を含む。該HTTP/PPPクライアントモジュール156は、ネットワークアプリケーションモジュール85の制御下で、インターネットへのダイヤルアップアクセスを可能にする通信プロトコルを使用することによりDVR37がRNSサーバ32とPPP接続を確立することを一般に可能にする。こうすることにより、DVR37からRNSサーバ32へhttp転送253を行うことが可能になる。より詳細には、PPP接続は、当業界で周知のように、ポイント・ツー・ポイント・リンクを介して多数の他のプロトコルからのデータグラムを転送するための標準的な方法を提供するインターネットプロトコルを使用する。DVR37とサーバ32との間のPPP接続は、通常の電話回線を介した接続を可能にし、これによりDVR37がネットワークに参加することが可能となる。インターネットへのゲートウェイに対する電話を切ってリダイヤルする機能に加え、セッションを確立し終了させることによりPPP接続を可能にする更なる機能をモジュール156に設けることができる。各DVR37がクライアントとして機能する点から見て、例えば、URL”rns.replaytv.net”に対応する1つのRNSサーバ32が存在する。PPP接続の1つの利点は、(ダイヤルアップコンピュータへファイルを転送して該ファイルをシステム内にダウンロードするのではなく)該PPP接続によりDVR37とサーバ32との間の直接のファイル転送が可能となる点である。
代替的には、PPP接続は、高速回線DS1,DS3内にダイヤルすることにより全二重リンクで実施することができる。
DVR37がRNSサーバ32とセッション253,255を確立し、該DVR37へトランザクションファイルをダウンロードすることが可能となる。例えば、ネットワークアプリケーションモジュール85の制御下での幾つかの例示的な特徴として、(1)フロントエンド14aからチャネルガイドデータをダウンロードすること、(2)フロントエンド14aから再生ゾーンデータをダウンロードすること、(3)フロントエンド14aから新しいソフトウェアアップグレードをダウンロードすること、(4)DVR37からフロントエンド14aにログファイル情報をアップロードすることが挙げられる。これら4つの機能を実施する1つの態様は、DVR37がhttpリクエストをRNSサーバ32に提供することであり、該RNSサーバ32は、該リクエストに応じてCGIゲートウェイを使用し、DVR37から受信したリクエストを実行するPerlスクリプトを呼び出す。
トランザクションファイルを受信するにあたり、DVR37は、図4Dに示すように、トランザクションハンドラモジュール152を含む。該トランザクションハンドラ152は、トランザクションファイルをリクエストへと構文解析し、各リクエスト毎にリクエストハンドラ154をコールする。
リクエストハンドラ154は、リクエストを実行し、考え得る競合をチェックし、各リクエスト毎にレスポンスを返す。かかるレスポンスの各々は、同実施形態ではXMLでフォーマットすることが可能である。トランザクションハンドラ152は、該レスポンスをトランザクションレスポンスファイル中に編集し、及び該ファイルをRTVS通信モジュール158に返す。該RTVS通信モジュール158は、RNSサーバ32と通信するためのインターネットに対する定期的かつ自動的なダイヤルアップをネットワークアプリケーション85が制御する場合に、前記トランザクションレスポンスファイルをRNSサーバ32にアップロードするよう機能する。
特定の実施形態では、一組のルーチンを他のアプリケーション87に含めることが可能である。1つのかかるルーチンは、リクエストハンドラ154の制御下でリクエストリストを解析することによりリクエストを取得し、及びそれに対応するファイルを作成する。リクエストファイル内に含めることが可能な情報としては、リクエスト識別子、実行すべきコマンド、及び該コマンドを実行することになるターゲットインタフェイスが挙げられる。例えば、リクエストファイルは、再生ガイドインタフェイス上のコマンド「再生チャネルの追加(AddReplayChannel)」に関連付けされた一意の識別子を含むことが可能である。DVR37に新しいリクエストが到達すると、そのことがリクエストハンドラ154に知らされて、該リクエストハンドラ154が各リクエストを処理してその結果を「結果」ファイル内に配置する。例えば、「結果」ファイルは、一意の識別子に関するコマンドが成功したことの指示、コマンドの実行により生成された特定の結果、及びそれに関連するタイムスタンプを含むよう構成することができる。本書に記載のリクエスト及び結果ファイルは単なる例示的なものであり、他の実施形態もまた本発明と共に適当に良好に機能するものとなる、ということが理解されよう。
ここで、他のアプリケーションモジュール87に含めることが可能な様々な特徴について説明する。モジュール87は、リクエストに適応して単一のショーを追加するよう構成することが可能である。該モジュールは、競合又はフリーディスクスペースの利用可能性をチェックした後に、指定された記録イベントを追加するために使用される。次の表1は、かかるモジュールにより使用されるデータ構造を生成するのに有用な例示的なデータを列挙したものである。
【表1】
Figure 2004506351
アプリケーションモジュール87は更に、ショーベースの再生チャネルを、そのショーからの品質(quality)及び補償される状態(guaranteed status)を使用して追加する能力を含むことが可能である。好適には、ショーの編数及び期間に基づいて利用可能な記憶スペース80が計算される。表1に列挙した例示的なデータに加えて、更なるデータ、すなわち、(1)追加すべき再生ショーの名称、及び(2)追加すべき再生チャネルの名称をデータ構造に含めることも可能である。この例示的なデータと同じ組み合わせを使用して、DVR37により受信したリクエストに適応して多数のショーを追加することが可能である。
受信したリクエストがテーマベースの再生チャネルの追加を含む場合には、アプリケーションモジュール87は、(テーマベースのショーの期間に基づく)利用可能な記憶スペース80、エンコーダの品質レベル、及び補償される値の指示子を求める機能を含むことが可能である。次の表2は、かかるモジュールにより使用するためのデータ構造を生成するのに望ましい例示的なデータを列挙したものである。
【表2】
Figure 2004506351
DVR37で受信したリクエストはまた、記録リスト中に維持されているスケジューリングされた記録リクエストを削除するためのものとすることが可能である。したがって、アプリケーションモジュール87は、スケジューリングされたショーを再生チャネル上の記録リストから削除する機能を含むことが可能である。次の表3は、この機能を提供するためにモジュール87により使用されるデータ構造を生成するのに有用な例示的なデータを列挙したものである。
【表3】
Figure 2004506351
アプリケーションモジュール87はまた、DVR37で受信した、再生チャネルを削除するためのリクエストに適応する機能を含むことが可能である。この機能を可能にするために、ショーに対応する再生チャネルidを該リクエスト中に与えることになろう。
更に、アプリケーションモジュール87は、ユーザがチャネルのパラメータ(例えば補償される時間)を変更することを可能にする機能を含むことができる。パラメータが変更されると、再生チャネルが更新され、競合及び利用可能な記憶スペース80がチェックされ、及び該更新の成功の通知が提供される。
更に、アプリケーションモジュール87は、スタティック再生チャネルをショーベースの再生チャネルへと変更する機能を提供することが可能である。この機能を容易化することができる例示的なデータとして、(1)再生ショーの名称、及び(2)再生チャネルの名称が挙げられる。
アプリケーションモジュール87のその他の機能として、受信したリクエストに適応してDVR37からの再生ガイド並びにチャネルガイドを取得することが挙げられる。アプリケーションモジュール87の既述の機能が提供される場合、当業者に理解されるであろう1つの技術的な利点は、DVR37で受信した対応するリクエストをあたかも標準的な対話から生じたものとして扱って「to do」リスト中に組み込むことが可能である点である。データのプル、プッシュ、又はブロードキャストフローの何れが使用される場合であっても、DVR37は、追加のインフラストラクチャを必要とせず、このため追加の専用のソフトウェアが必要になることもない。
E.通信システムのバッチ処理のための例示的な方法
ユーザがDVR37を制御し又は関連情報にアクセスするための好適な方法のプロセスについて説明する。該プロセスは、図11に符号180で示すようなホームページをユーザがリクエストすることにより開始されるインターネット上でのユーザ認証で始まる。当業者であれば容易に理解されるように、ホームページ180を探し出すためにワールドワイドウェブ上のURL(Uniform Resource Locator)を利用する。該ユーザが、システム10A,10Bに対する新規ユーザである場合には、ウェブサーバ28−1...28−nを介して登録を行う機会が該ユーザに提供されることになる。既に登録しているユーザの場合には、該ユーザは、ホームページ180から個人情報(例えばユーザ名182及びパスワード184)を入力することにより、ログインすることができる。認証プロセスの更なる詳細については後述することとする。
認証に成功すると、ウェブサーバ28−1...28−nは、APIを介して1つ又は2つ以上のステップを開始して、ユーザがログイン後に見ることになるDVR37のユーザインタフェイスを表す情報ウェブページを生成する。この最初の情報ページの一例を図12Aに示す。この情報は、デフォルト値により、システム管理により、又はブラウザ18から発せられたHTTPリクエスト中に埋め込まれたクッキー情報(すなわち、ブラウザコンピュータ内にローカルで配置された小さなデータファイルすなわちクッキーに格納された、特定のウェブページが特定のブラウザで如何に使用されたかに関する情報)により示すことが可能な状態情報に基づいて生成することが可能である、ということが当業者には理解されよう。例えば、ログインプロセスを完了したばかりのユーザに最終的に返される情報は、図12Aに示すようなEPG(electronic program guide of channels)、再生ガイド、「ショー探索」ページ、及び「マニュアル記録」ページである。後者については以下で更に詳述することとする。
図13Aは、ユーザがシステム10A,10Bから情報を取得し同システムに命令を与えるための1つの方法のプロセス230を示すデータフロー図である。図13Bは、図13Aのデータフローに関する更なる詳細を示すシーケンス図である。この図全体を通して、データフローライン(「ステップ」と交換可能に称することとする)は、該方法の各部が好適に実施される順序を反映したものである。以下の説明では、図2及び図5も時折参照する。システム10A,10Bから情報を取得し同システムに命令を与えるプロセス230を開始する前に、ユーザは、適当なウェブページ231で応答するサーバ28−1...28−nのうちの1つのウェブサイトへナビゲートする(navigate:進行する)(229)。該プロセス230は、システム10A,10Bへのログイン(232)で開始する。ユーザは、例えば図11のユーザインタフェイス180に識別情報を入力する。ユーザ名及びパスワードが、図13Bのステップ232,234,236に示すように、クライアントブラウザからデータベースへと送信される。データベース上の所定の情報を用いてユーザが認証されると、図12Aに示すようなEPG等の情報を有する最初の情報ページ190が、データベース238から受信したデータから生成されて(240)クライアントブラウザ20へと送信される。かかる最初の情報ページ190、並びにそれに続くページは、図12Bに示すようなドロップダウンメニュー、並びに図12Aに示す「Go」ボタン192のようなボタンを含むことが可能である。ユーザは、各ドロップダウンメニュー中の所望のエントリを選択し、及び/又は「Go」ボタン192をクリックして、コマンドを呼び出すことが可能である。こうすることにより、ブラウザ20は、ステップ232に示すように、サーバ28−1といった既に接続されているウェブサーバにHTTPリクエストを送る。ドロップダウンメニュー及びボタン駆動機能は、様々な方法で実施することが可能である、ということが当業者には理解されよう。
HTTPリクエストがサーバ28−1で受信されると、該サーバ28−1は、フローライン234に示すように、中間層サーバ40上のAPIの範囲内で適当なステップを開始し又は適当なファンクションコールを行う。該ステップは更に、中間層サーバ40とデータベース44との間の通信(236)を伴うものとなる。フローライン236は、中間層サーバ40が、データベース44からリクエストされた情報を取得し又は該データベース44に命令を格納するステップを示している。これを行うための1つの方法が、JDBC(Java(R) DataBase Connectivity、Java(R) データベースAPIとしても知られる)であり、この場合には、生データが中間層サーバ40からデータベース44へ送られる。データベース44は、フローライン238に示すように(好適には生形式(raw format)で(但し必ずしも生形式である必要はない))リクエストされたデータを中間層サーバ40に返す。
次いで、中間層サーバ40は、取り出されたデータ及び更新された情報を組み合わせてフォーマットされたデータを生成し、該データがウェブサーバ28−1に送られる(240)。中間層サーバ40上のAPIは、生形式で受信されたデータを、データ構造を柔軟に定義するのに良く適した形式へとパッケージ化する(すなわちフォーマットする)、プログラム可能なロジックを含むものである、ということに留意されたい。有利な1つのフォーマットがXMLである。これは、XMLフォーマットが、共に緊密に結合されていない態様でデータのタグ付け(tagging)を行うことを可能にし、これにより、データ構造を定義する際の一層高い柔軟性が提供されるからである。しかし、HTMLを含めた別のフォーマットも、本発明の本書に記載する実施形態で適切かつ良好に動作するものとなる。上記ステップ240に続いてステップ242が実行され、これにより、次いでサーバ28−1が、クライアントブラウザ20に良く適したフォーマット(例えば、HTML、Java(R)、Java(R)スクリプト)を有する表現を組み立ててブラウザ20に送ることになる。代替的な実施形態では、この表現で良好に機能する別のフォーマットは、システム10A,10Bがワイヤレスメディアによるクライアント−サーバアクセス用に修正される場合には、WML(すなわち、Wireless Markup Language:携帯電話のブラウザといったワイヤレスデバイスのためのコンテンツ及びユーザインタフェイスを指定するために使用されるXML言語)である。当業者には容易に明らかとなるように、図13Aに示すプロセスステップは、ユーザリクエスト(例えば情報のリクエスト及び指定した番組を記録するためのリクエスト)に関連する様々な場合に柔軟に適応するものとなる。ステップ234’,236’,238’,240’,242’は、クライアント18、サーバ28、中間層サーバ40、及びデータベース44の間の更なる通信を示したものであるが、既述のステップと同様のものである。
中間層サーバ40は、様々なウェブポータル28−1...28−nとデータベース44との間のAPIを介した通信を可能にし、フロントエンド14aを使用してDVR37を制御するためのユーザ命令及び操作に関する通信を容易化するものである。APIの1つの技術的な利点は、該APIにより、ポータル(例えば28−2)が、中間層サーバ40から受信した情報を、ユーザが該情報に興味を持ったときに基づく頻度で、特定のポータル(例えば28−2)の環境内にローカルにキャッシュすることが可能になる点である。更に、本発明の本書に記載の実施形態のAPIは、ポータル28−2が、システム管理者が特定のポータル(例えば28−2)を操作するタイプのグラフィカルユーザインタフェイス(すなわちGUI)とは異なる所有権を有するタイプのGUIを使用して情報を表示することを可能にするように、中間層サーバ40からの情報のコンテンツを提示することを可能にする、という柔軟性を有するものとなる。ビジネスロジック(例えば、記録に関する時間の競合やディスクスペースのチェック処理)を中間層サーバ40に含めて、ポータル28−1...28−nから送られたリクエストを受信し及び対応するレスポンスを送り返す標準化された機構を提供するAPI部分を形成することが可能である。
ポータル28−2といったウェブサーバ28−1...28−nがウェブブラウザ20において対話型テレビ装置のデータを提示するために、各ウェブポータルは、ウェブポータル28−1...28−nの資産(property)と完全に又は部分的に接続された状態にあるデータベース44から受信したコンテンツを、使用し、コピーし、エンコードし、格納し、アーカイブし、分配し、送信し、修正し、変換し、可聴形式に変換し、公的に表示し、及び公的に実行することが可能となっている。該APIは、コンテンツをダウンロードし、プリントし、又は実行することを、ウェブポータルがブラウザ20のユーザに許可することを可能にする。該コンテンツは、対話型テレビ装置のデータ、例えば、最高優先順位で見るべきショーのリスト(top watched show list)といったものを含む。本発明の本書に記載の実施形態のAPIは、特定のウェブポータルの形式及び見た目と雰囲気にコンテンツを合わせることを可能にする。
上記議論から明らかなように、APIは、本発明の本書に記載の実施形態のフロントエンドにおいて重要な役割を果たすものである。該APIは、データ構造定義、中間層サーバ40とポータル28−1...28−nとの間の通信を容易化する機能、並びにデータベース44中のデータの取り出し及び操作を行う一連のルーチンを含む。ルーチンとは、データベース44との通信を含む様々なタスクを実行するために呼び出すことができるAPI内に存在し該APIの一部を形成する各ステップの呼び出し可能なアルゴリズム又はシーケンスを意味するものと定義される。APIのルーチンは、DVR37を動作させ又はデータベース44に格納されている関連情報にアクセスするためにサーバ28−1...28−nにより呼び出すことが可能である。本発明の本書に記載の実施形態で実施されるかかるルーチンのリストを図14に示す。それに対応する入力パラメータ及び出力ファイルを図15に示す。ルーチンの名称並びにパラメータ及びファイルの名称は、それぞれの機能を示すものとなるように付され、その殆どは当業者には自明となろう。幾つかの直観性の低い用語については、フロントエンド14aの説明で既述のところである。
本発明の1つの特徴は、ユーザがコンピュータネットワークを介して1つ又は2つ以上のデータベースと通信することによりメディアベースのデバイス36をリモートで動作させることを可能にする点である。図16Aに示す本発明の一実施形態を参照すると、ユーザリクエスト260は、例えばポータル28−2といったウェブサーバにより最初に受信され処理される。該ポータル28−2は、該リクエストをAPI264に対するファンクションコール262へと変換する。次いで、API264に埋め込まれたルーチンが呼び出され、これに従って該API264が実施されている中間層サーバ40が処理を進めて、少なくとも1つのデータベース268と通信する(266,270)。ステップ266は、メディアベースのデバイス36を制御し及び/又はデータベース268から関連データを取り出す(270)命令を提供することを含む。データベース268自体は、図2及び図5で既に説明したように、メディアベースのデバイス36及びその他の情報ソースと通信可能な状態にあるハブとして構成することが可能である。ポータル28−2によりコールされた全てのルーチンが実行された後、ポータル28−2は、API中のルーチンの実行結果を組み込むことによりユーザリクエストに応答する。
図16Bは、本発明の一実施形態に従って様々なユーザリクエスト260に応じてデータベース268内のデータに対するアクセス及び操作を行うためにウェブサーバ(例えばポータル28−2)がAPIルーチンを如何に利用することが可能であるかを高レベルで示したものである。図2及び図5におけるデータベース44は、単なる例示としてのものであり、4つのデータベース280,282,284,286(その各々については以下で説明する)を示す図16Bの実施形態は適切且つ良好に動作するものである、ということに留意されたい。図16Bに示すAPIルーチン264は、データベース268からデータを抽出し該データベース268に命令を挿入するよう構成されている。同図において、データフローの支配的な方向は、各ルーチンを1つ又は2つ以上のデータベースに結合する矢印の方向により示されている。しかし、大量のデータがデータベース268との間で転送される前に、幾つかのパラメータ又はトリガデータ(triggering data)の交換が生じているものと仮定している。データベース280は、ユーザに関する情報を含み、例えば、SilkNet(R)といった商用の認証データベースの複製、及び更なるユーザプロファイルデータから構成される。このデータベースは、APIルーチンであるアカウント作成(CreateAccount)288、ログイン(Login)290、及びプロファイル取得(GetProfile)292によりアクセスされ、それらルーチンは共に、ユーザ認証を行い、及びサーバ28−1及び中間層サーバ40を介したユーザとシステム10A,10Bとの間の通信の初期化を行う。ボックスプロファイルデータベース282は、個々のメディアベースのデバイスに関連する情報(個々のチャネルラインナップを含む)をアーカイブする。データベース268は、ユーザが動作させることを所望するDVR37に特に関連する情報を見るためのユーザリクエストに応じて、プロファイル取得(GetProfile)294並びにチャネルラインナップ取得(GetChannelLineUp)296によりアクセスされる。EPGデータベース284は、オンラインサービス54等の商用データベースとすることも、商用ソースから既に抽出されている情報を含むデータベースとすることも可能である。このデータベース284は、番組情報を取り出すためにEPG取得(GetEPG)298及びショーガイド(ShowGuide)300によりアクセスされる。最後に、ボックストランザクションデータベース286は、DVR37により記録された番組に関連する情報、及び将来の番組を記録するためのDVR37に対するリクエストを含む。このデータベース286は、リクエスト追加(AddRequest)ルーチン304又はリクエスト削除(DeleteRequest)ルーチン306を介してリクエストが行われる度に、中間層サーバ40と情報を交換する。該データベース286はまた、再生ガイド取得(GetReplayGuide)302を介して関連情報を見るためのユーザリクエストに応じてアクセスされる。
EPG取得ルーチン298は、特定のユーザについてカスタマイズされたEPGを取り出す機能を提供する。これを行うための1つの特定の態様は、モジュール298が、クライアント18から受信した命令からのユーザ入力を許可すること及びユーザのEPGのドキュメントを返すことである。例えば、ユーザは、ユーザID、特定のDVRのID、リクエストされたEPGの開始時間及び期間、開始チャネル、及び表示すべきチャネルの数といった様々な識別子を含むことが可能である。
チャネルラインナップ取得ルーチン196は、特定のDVR37のチャネルラインナップを取り出す機能を提供する。このラインナップは、ユーザが例えばユーザID及び特定のDVR37のIDを提供した場合に取り出すことが可能である。該取り出される情報は、契約したサービス(例えばケーブル又は衛星ディスクサービス)及びラインナップを(例えば特定のチャネルを削除することにより)カスタマイズしたユーザの嗜好に起因して、様々な番組チャネルのDVR37に対する利用可能性によって決まる。実施形態によっては、チャネルラインナップ取得ルーチン296に対するコールをEPG取得ルーチン298に埋め込んで、該EPG取得ルーチン298に対する単一のコールにより特定のユーザ並びに特定のDVR37に関してカスタマイズされたEPGを取り出すようにすることが可能である。
ショーガイドルーチン300は、ユーザID、DVRのID、開始時間、及びリクエストした詳細レベルに基づき、例えばEPG情報を提供する商用ソース(例えばTMSによる供給(TMS feed))から入手可能なショーの詳細な説明を取り出す機能を提供する。更に、該ルーチン300は、ショータイトル、俳優、監督といった属性により示唆されるユーザの関心に適合するショーを見出すために全ての利用可能なショーの詳細情報を探索することができる。かかる場合、ユーザは、突き合わせすべき属性及び単語又は語群を含む照会の基準を提供することができ、ショーガイドルーチン300は、探索結果としてショーのリストを返すことになる。EPG取得ルーチン298に関し、実施形態によっては、ショーガイドルーチン300が、チャネルラインナップ取得ルーチン296に対するコールを含むことが可能である。
図16Bに示す殆どの他のルーチンの機能及び機構は、当業者であれば図14及び図15において提供した説明に照らして容易に理解されよう。しかし、リクエスト追加ルーチン304については図17に関して更に説明する。該ルーチン304は、ユーザが異なるタイプのリクエストを行うことを可能にする一組のルーチンを含む。図17に示すように、これらのリクエストは、DVR37のステータスを更新するための単純なもの(すなわちリクエストタイプ=なし)から番組の記録(すなわちリクエストタイプ=ショー又はリクエストタイプ=テーマ)及び削除(すなわちリクエストタイプ=更新)をプログラムするためのものまで及ぶことが可能である。記録リクエストは、ショーにより、又は時間及び番組チャネル(すなわちマニュアル記録リクエスト)により、指定することが可能である。記録リクエストはまた、特定の探索基準に対応し又は(例えば識別子Suzukiにより識別される)再生ゾーンに対応するテーマに基づくものとすることが可能である。
上記の説明は、本発明の一実施形態のフロントエンド14aの動作のための基本構成を概説したものである。この構成は、ユーザにより行われたリクエストに応答するための一連のオプションを有するポータル28−1といったウェブサーバを提供する。これらのオプションは、好適には中間層サーバ40において実施されるAPI264に基づくものである。以下では、ユーザインタフェイス設計の要素を考慮しつつ、様々なルーチンを呼び出すための幾つかの例示的な方法について説明する。例えば、図12Aに示すチャネルガイドについて言及する。ページ190が提示されたユーザは、異なる時間範囲及び異なる組をなすチャネルに関するチャネルを見ることが可能である。該ユーザは、メニューバー194,196,198中の適当なオプションを選択して「go」ボタン192を選択することにより所望の時間及びチャネルにジャンプすることができ、又はボタン195,197を使用してチャネルガイドを介してナビゲートすることができる。ユーザは、自分が興味のあるショーを見た際に、該ショーを選択し、図12Bに符号218等で示すプルダウンメニューにアクセスして該ショーの詳細な説明を見ること又は該選択したショーを記録することが可能となる。ユーザはまた、選択したショーに類似した別のショーを探索すること及び/又は所望する場合に該ショーを記録することが可能である。
図18は、ユーザが上記のアクションの何れかをとることを予想して28−1等のウェブサーバがユーザリクエストに応答するための例示的な方法320を示すフローチャートである。ウェブサーバ28−1は、チャネルガイドが最新であること、及び該チャネルガイドに表示される情報が、かかる情報を格納するアクセス対象となる適当なデータベースに含まれる情報と同期していることを最初に確認する(322)。しかし、かかる情報が現行のものでない可能性があることに留意されたい。これは、少なくともバッチ処理モードでは、データベースはDVR37と定期的な時間間隔をおいてしか通信を行わないからである。ウェブサーバ28−1が最新のチャネル情報を有していると該ウェブサーバ28−1が判定した場合には、チャネルガイドが表示される(328)。またウェブサーバ28−1が最新のチャネル情報を有していないと該ウェブサーバ28−1が判定した場合には、ウェブサーバ28−1は、チャネルラインナップ取得ルーチン296をコールし(324)、及びEPG取得ルーチン296をコールして、チャネルガイドを表示する(328)前に情報を更新する。チャネルラインナップは、各DVR37に固有のものであり、またEPGデータのフィルタとして必要とされるものであり、これにより、DVR37に対して利用可能とならない番組に関する情報がふるい分けされる。ユーザは、幾つかの事の1つを行うことを選択するまで、上述のようにチャネルガイドを介してナビゲートすることができる。例えば、ユーザがショーの詳細な説明を見ること又は類似するショーを見つけることをリクエストした(330)場合、これに応じて、ウェブサーバは、ショーガイドルーチン300を呼び出し(332)、取り出された情報を表示する(334)。一方、ユーザが、選択したショーを記録することを選択した(336)場合には、ウェブサーバ28−1は、リクエスト追加ルーチン304をコールして(338)、更新された情報(例えば、リクエストが処理されたこと又はかかる記録のためのスペースがDVR37中に存在しないことを示す情報)を表示する(340)。実施形態によっては、該更新された情報は、図12Aに示すような修正されたチャネルガイド内に、又は図19A及び図19Bに示すような再生ガイド内に提示することが可能である。
強調すべきは、サーバ28−1が、ユーザとユーザインタフェイスの実施形態に応じて該ユーザに対して利用可能となるオプションとに適応することが可能となる態様である。図18の方法及び上述のオプションは、例えば、図12Bに示すようなドロップダウンメニューを含む、図12Aに従って実施されたチャネルラインナップ表示に対応するものとなる。ユーザインタフェイスの異なる実施形態は、別のリクエストオプションをユーザに対して利用可能とするものとなる。例えば、ドロップダウンメニュー220,222を実施することにより、ユーザがチャネルラインナップ表示ページ中の記録オプションを変更することが可能となる。ユーザインタフェイスに対する同様の依存性が、全ての例示的な方法及びそれに対応する後述のフローチャートに当てはまる。
図19A及び図19Bに示す再生ガイドは、再生ガイド情報を提示するための1つの方法を示している。図19Aの提示350は、再生チャネルにより編成された情報を示しており、該提示は、上述のように、個々のショー又は特定のテーマに基づくものとすることが可能である。再生ガイド情報を提示するための代替的な方法が図19Bに示されている。この場合には、記録済のショーが再生ショーページ中に表示される。何れの場合にも、ユーザに対して利用可能となる1つの主たるオプションは、1つ又は2つ以上のショーを削除することである。図19Bの提示の場合には、別のオプションは、将来のショーを記録するために1つ又は2つ以上のリクエストを削除することである。この場合も、再生ガイドの実際の実施形態は、どのオプションがユーザに対して利用可能となるかを判定する。
図20は、図19A及び図19Bに示すような再生ガイド情報の提示に対応してウェブサーバ28−1がユーザリクエストに応答するための例示的な方法360を示すフローチャートである。ウェブサーバ28−1は、該ウェブサーバ28−1が最新の再生ガイド情報を有しているか否かを判定する(362)。ウェブサーバ28−1が最新の再生ガイド情報を有していない場合には、該ウェブサーバ28−1は、ステップ364でAPIルーチンである再生ガイド取得ルーチン302を呼び出し、ステップ366でリクエスト追加ルーチン304を(「リクエストタイプ=なし」で)呼び出して、情報を更新する。該リクエスト追加ルーチン304の呼び出しは、以前に保留にされたリクエスト(再生ガイド情報がリクエストされたときまでに実行済であっても未実行であっても良い)が存在する場合に必要となる。再生ガイド情報が表示される(368)と、ウェブサーバ28−1は、ユーザからのリクエストを受容して、将来のショーを記録するために以前に記録されたショーを削除し又は以前のリクエストをキャンセルすることが可能となる。記録済のショーの削除がリクエストされる(370)と、サーバ28−1は、リクエスト追加ルーチン304を(「リクエストタイプ=更新 及び 更新タイプ=ショー削除又はチャネル削除」で)呼び出して(372)、該リクエストをボックストランザクションデータベース286へ送る。次いで、更新された再生ガイドが表示される(374)。保留中のリクエストのキャンセルがリクエストされた場合(376)には、サーバ28−1は、リクエスト削除ルーチン306を呼び出してキャンセルを達成し、次いで更新された再生ガイドを表示する(380)。この状況では、保留中のリクエストは、データベース44中にあるリクエストであるが、一般には、リクエストのサーバ48による処理が完了したこと、又はリクエストのサーバ48による処理が未完であってデータベース44により受信もされていないことを示す、DVRからのレスポンスである。何れの場合も、ボックストランザクションは、バッチプロセスで、例えば、予め設定された次の接続セッションで、DVR37へリクエストを送る。
図21のフローチャートは、再生ガイド情報が図19Bに示す再生ショー形式で提示される場合に対応するものである。該方法390の場合には、ユーザは、保留中のリクエストに対するアクセスを有さないため、記録済のショーの削除しかリクエストすることができない。最初に、ウェブサーバ28−1は、該ウェブサーバ28−1が最新の再生ガイド情報を有しているか否かを判定する(392)。該ウェブサーバ28−1が最新の再生ガイド情報を有していない場合には、図19Bの形式の再生ガイドが表示される(396)前に再生ガイド取得ルーチン302がコールされる。ユーザは、再生ガイド中に列挙されているショーの詳細な説明を見ること又は類似したショーのコレクションを見ることをリクエストする(398)ことが可能である。また、かかるリクエストが行われた場合には、ウェブサーバ28−1は、APIルーチンであるショーガイドルーチン300をコールして情報を取り出し、その結果を表示する(402)。ユーザが記録済のショーのリストから選択したショーの削除をリクエストする(406)場合には、サーバ28−1は、リクエスト追加ルーチン304を(「リクエストタイプ=更新 及び 更新タイプ=ショー削除又はチャネル削除」で)呼び出して、該リクエストをボックストランザクションデータベース286を介してDVR37に送る。
図22は、ユーザが特定の基準に基づきショーを探索することを可能にする「ショー探索」ページを示している。図示の例示的な実施形態では、ユーザは、単語又は語群をタイピングし、該単語又は語群に関して探索すべきフィールド(例えばショータイトルフィールド及び説明フィールド)を指定する。図23は、このショー探索ページから開始されたユーザリクエストにウェブサーバ28−1が応答するための対応する方法420の一実施形態を示したものである。ショー探索ページを表示し(422)、ユーザからの探索のための単語又は語群を受信した後、サーバ28−1は、チャネルラインナップ取得ルーチン296をコールし、及びショーガイドルーチン300をコールして、探索を実行する。探索の基準に合った1つ又は2つ以上のショーが見つかった場合、その結果が表示されて(434)、探索の基準により規定されるテーマに基づき再生チャネルを準備すること又は探索結果に列挙されたショーのうちの1つを記録することをユーザがリクエストする(436)ことが可能となる。かかるリクエストが行われると、サーバ28−1は、リクエスト追加ルーチン304を呼び出して(438)、DVR37と通信可能な状態にあるボックストランザクションデータベース286へ該リクエストを送り、更新された情報を表示する(440)。探索の基準を満たすショーが見つからなかった場合には、エラーページが表示される(432)。
次に、図24A及び図24Bに示す「マニュアル記録」ページの一例について考察する。ユーザは、将来の記録セッションの日時並びにDVR37が記録すべき番組チャネルを指定することができる。図示しないが、図24Bに示すマニュアル記録ページ452の代替的な実施形態では、一週間のうちの選択した曜日の指定した時間に繰り返し記録を行うリクエストが可能となる。図25には、マニュアル記録ページを表示するための方法460が示されている。サーバ28−1は、最初にマニュアル記録ページを表示し(462)、マニュアル記録リクエストを処理するために必要な情報を受信する(464)。次いで、サーバ28−1は、リクエスト追加ルーチン304を(「リクエストタイプ=ショー 及び ショータイプ=単一マニュアル又は反復マニュアル」で)コールして(466)、該リクエストをボックストランザクションデータベース286を介してDVR37へ送り、更新された情報をユーザへ返す(468)。
ユーザリクエストに応答するためのウェブサーバ28−1に関する例示的な方法についての説明を切り上げ、システム10A,10Bに対するユーザログインを実施するための好適な方法470を図26に示す。図26のフローチャートは、あらゆるウェブベースのサービスに使用することが可能な方法を表している。ホームページが表示され(472)、次いでユーザが、通信を開始した新規ユーザであるか否かを判定する(474)。新規ユーザについて収集された(476)情報に関し、ウェブサーバ28−1は、アカウント作成ルーチン288をコールする(478)。ユーザの入力情報が有効である場合には(480)、プロファイル取得ルーチン294がコールされて(482)、該ルーチンからデフォルトページ484が決定され、その他の場合にはエラーページが表示される(486)。既存のユーザに関するユーザ名及びパスワードの性質を有する情報が収集された場合には(488)、ログインルーチン290に対するコールが行われる(490)。ユーザ情報の認証(492)時に、サーバ28−1は、プロファイル取得ルーチン294をコールした(482)後に次に表示すべきデフォルトページ484(例えばEPGガイド)を決定する。
2.オン・ザ・フライ処理を介したメディアベースのデバイス及びアプライアンスのリモートコントロールの一実施形態
ここで図1Bを再び参照する。同図には、本発明に従ってメディアベースのデバイス及びアプライアンスを通信ネットワークを介してリモートコントロールすることを可能にする、コンピュータベースの通信システム19の別の一実施形態が示されている。図1Bの実施形態では、通信システム19は、メディアベース/データ統合システム(media−based/date integration system)17(「統合システム17」と称す)に結合されたネットワークコンピューティングシステム15を含む。該ネットワークコンピューティングシステム15は、多数のユーザが、通信システム19を介して通信を行って、遠隔場所から統合システム17のメディアベースのデバイス及びアプライアンスに対するアクセス及び制御を行うことを可能にする。統合システム17は、通信システム19を介したメディアベースのデバイスへのアクセスを可能にし、これにより、該デバイス及びアプライアンスのスタンドアロン能力が向上する。
図27は、図1Bの通信システム19の更なる細部を有する通信システム19Aの一実施形態を示すブロック図である。図27に示す実施形態では、通信システム19Aは、統合システム17aに結合されたネットワークコンピューティングシステム15aを含む。特に、例えば、ネットワークコンピューティングシステム15a及び統合システム17aは、後述するように両方ともクライアント−サーバコンピュータモデルに基づくものである。
A.フロントエンド及びバックエンドサブシステムの例示的な実施形態
図27を参照する。同図には、通信システム19Aの代替的な実施形態が示されている。この実施形態の1つの技術的な特徴は、クライアント18上のブラウザ20がネットワーク24(インターネット等)を介してほぼリアルタイムの通信レスポンスでメディアベースのデバイス36と通信する(22)ことを可能にする。この実施形態では、フロントエンドサブシステム14a及びバックエンドサブシステム16aが修正されて、それらの内部のロジックを統合システム17a内の中間層サーバ500内へと再配置するようになっている。こうすることにより、ネットワークコンピューティングシステム15a及び統合システム17aを、互いに通信可能に結合された2つのクライアント−サーバサブシステムとして実施することができる。ネットワークコンピューティングシステム15aは、1つ又は2つ以上のクライアントコンピュータ18(好適にはその上で実行されるウェブブラウザ20を有するもの)を含む。ネットワークコンピューティングシステム15aは更に、ライン26で示すように、ネットワーク24と通信可能な状態にある1つ又は2つ以上のサーバコンピュータ28−1,..,28−nを含む。本発明を理解する上での便宜及び容易化のため、図2及び図5と同様の符号を図27で使用している。
統合システム17aは、メディアベースのデバイス36及びDVR37を含み、それらは、通信リンク60,34,38を介して複数の中間層サーバ500のうちの1つと通信可能に結合されている。DVR37及びメディアベースのデバイス36及びサーバ500は、クライアント−サーバの関係で動作する。サーバ28−1,..,28−nは、データフローライン30で示すように、サーバ500と通信可能な状態にある。1つ又は2つ以上のデータベース502がサーバ500に結合される。データベース502は、ソース44,50,54(図27には明示的に示していない)と類似した様々なオンラインソース及びウェブホスティングソースからのデータを編集したものを格納するという性質上、データベース44と類似したものである。更に、クライアントコンピュータ18、サーバ28−1,..,28−n、及びメディアベースのデバイス36(及びDVR37)は、図4Aないし図4Dに関して既に説明したものと同様の例示的なハードウェアを含むものである。したがって、これらのデバイスの各々についての詳細な説明は行わず、システム19Aの他の特徴に焦点を絞ることとする。
図28を参照する。同図には、図27の代替的な実施形態が示されており、該実施形態は、例示として、負荷平衡型の複製された一組をなすデータベース502及びアプリケーションサーバを含む。クランチャ及びログミルモジュールが、図9の場合のようなスタンドアロンモジュールではなくアプリケーションサーバモジュールとして書き替えられており、これにより多様なアプリケーションの急速な開発及び展開が可能となる。負荷平衡に良く適した1つの特定の実施形態として、BEA Systemsにより提供されるWebLogic Application Server 510が挙げられ、これは、図27のサーバ500に使用可能なものである。
図28に示すように、該WebLogic Application Server 510は、TMS FTSサーバ112からデータを抽出し、該抽出したデータをローカライズされたフォーマットに変換する、クランチャアプリケーション116を含む。該クランチャアプリケーション116は、データベース502に格納するためにデータをプール512中に集合させるモジュールへTMSデータを送るよう機能するが、もはや図9の場合のようなスタンドアロンモジュールではない。更に、サーバ510は、RNSサーバ32との通信を可能にするアプリケーションモジュール514を含む。別のアプリケーションモジュール516は、サーバ510がウェブサーバ518と通信することを可能にする。モジュール514,516の両者とも、データベース502との間でデータの送受信を行うためにDB接続プール(DB Connection pool)512に結合される。
ここで図29を参照して通信システムの別の実施形態550について説明する。該通信システム550は、WebLogic Application Server 552を使用するが、図28に示したものとは異なる態様で使用する。図29の実施形態では、WebLogic Application Server 552は、データベース502に結合され、次いで該データベース502が本書で既に説明したSilknetデータベース50に結合される。ネットワークコンピューティングシステム15aの一部は、サーバ552に結合されたウェブサーバ28を含む。RNSサーバ32は、図28の実施形態とは異なり、図29ではデータベース502と通信可能に結合される。この図29の実施形態では、通信は、データベース502を介して段階的に行われる(staged)。一般に、この構成は、より少ないサーバリソースを使用するものとなる。これは、データベース502にアクセスするたった1つの手段しかサービスが行われないからである。この実施形態では、データベース502は、膨大な数のプロトコルにわたり多数のトランザクションを処理するのとは対照的に、データベース機能の実行に特化したものとされる。アプリケーションサーバ552は、かかるトランザクションタスクからデータベースサーバを効果的に保護するものである。特定の実施形態によれば、該サーバ552は、一般にEnterprise Java(R) Bean コンテナ(container)を含み、これにより、クライアント及びサーバの容易な態様での開発が促進される。また、Apache Xerces 及び SAX Java(R) クラスライブラリ554を使用して、ウェブサーバ28で受信したXMLドキュメントの解析を行うことが可能である。
ここで図30を参照して通信システムの別の実施形態560について説明する。図30の実施形態では、一連の層が示されており、この場合、各層が、データパイプライン中の特定の機能を実行する。各層に示す構成要素は、明確に定義されたインタフェイスを介して隣接する層と通信する。第1層562(「プレゼンテーション層562」と交換可能に称する)は、ユーザが見るHTMLページを生成する。該第1層562は、第2層564からXMLフォーマットでデータを受信する。該第2層564は、「外部インタフェイス層564」と交換可能に称することとする。該外部インタフェイス層564は、ウェブポータル28に対して外部的にアクセス可能なインタフェイスを表している。このため、外部インタフェイス層564は、プレゼンテーション層562と第3層566(「データ管理層566」と交換可能に称する)との間の媒介として働く。該データ管理層566は、全てのデータアクセス及び管理機能をカプセル化する。WebLogic Application Server の Enterprise Java(R) Beansサービスを使用して、データ管理層566は、データベース502,50に対する接続プールを操作し、トランザクションを管理し、サーバコンポーネントのライフサイクルを管理し、及び必要であれば別の負荷平衡層を提供する。
図31を参照する。本書に記載のコンピュータベースの通信システムは、高度の耐故障性及びスケーラビリティを提供するよう構成することができる。図31に示すように、ネットワークインフラストラクチャ580は、多数のネットワークセンタ(又はポッド)582及び該ポッドにトラフィックを方向付けするグローバル負荷分散装置(load balancer)584を用いて動作する。1つのポッド(例えば、West Coastに関連するポッド)しか図示していないが、グローバル負荷分散装置584の管理及び制御下で他のポッド(例えば、East Coast又は世界の他の何処かにあるポッド)を含めることが可能である、ということが理解されよう。データベースの必要性をサポートするデータ管理を提供するために、ローカルデータベース586を各ポッドに含めることが可能である。更に、メインデータベース588(例えば図2のデータベース120,126)を企業の会社事務所に配置することが可能である。データベースは、該データベースの組み込み能力(built−in facilities)を使用することにより、及びローカルキャッシング技術により、同期を維持することが可能である。メインデータベース588は、アーカイブを行うため又はTMS等の外部データソース及びSilknet等の内部データソースと通信を行うために使用される。
B.通信システムのリアルタイム処理のための例示的な方法
図27を再び参照する。2つのクライアント−サーバシステム15a,17aを連続して結合することにより、クライアントブラウザ20とメディアベースのデバイス36との間の通信をほぼリアルタイム態様で達成することが可能となる。これは、デバイス36が、もはや中間層サーバ500との通信を定期的な態様で(すなわちバッチ式に)行うことがなく、サーバ500及びサーバ28−1〜28−nとの間でコマンドを送受信することが可能となるからである。
図27に示すように、メディアベースのデバイス36は、外部デバイス28−1〜28−nからのリクエストを操作する中間層サーバ500と通信する。こうすることにより、ブラウザ20から行われたリクエストが、ウェブサーバ28を介して中間層サーバ500に直接送信され、及びメディアベースのデバイス36へほぼリアルタイムのレスポンスでオン・ザ・フライで提供されることになる。
中間層サーバ500の1つの利点は、該中間層サーバ500が、データベース502に対するリアルタイムアクセスを、該データベースのスキーマを露呈させることなく、競合チェックその他のデータ操作機能と共に提供する点である。ウェブサーバ28は、データベース502に対して直接アクセスする必要はなく、中間層サーバ500上の一組のAPIを介してアクセスする。これは有利である。システム19Aのアーキテクチャがスキーマ又はデータベース502に依存しないからである。このため、システム19Aの残りの部分に必ずしも影響を与えることなく、データベース502及びスキーマを変更することが可能である。競合チェックといった更なる機能をシステム19Aに容易に追加することが可能である。例えば、追加機能をJava(R)コードでプログラムすることができる。メディアベースのデバイス36はまた、APIを介してデータベース502と直接通信することが可能であり、もはや図2及び図5に示すようにサーバ32,48と通信する必要はない。このメディアベースのデバイス36のリアルタイム通信に従事できるという特徴はまた、該デバイス36が互いに通信することを可能にする。例えば、デバイス36,37は、中間層サーバ500を介して互いに通信することが可能である。一実施形態では、デバイス36が、DVR37とのオンライン「チャットセッション」の確立又は該DVR37へのE−mailの送信を望むことが可能である。一般に、中間層サーバ500のの2つの部分が存在することになる。中間層サーバ500の第1部分は、外部のリクエスト(すなわちウェブサーバ28)を操作し、中間層サーバ500の第2部分は、メディアベースのデバイス36及びDVR37からのリクエストを操作する。
図28の特定の実施形態を参照する。ここで、WebLogic Application Server 510の幾つかの技術的な利点について説明する。サーバ510は、APIを介してデータベース502にアクセスするための、異なる組をなすクライアントのための単一の方法を提供することが可能であり、これは、数百万というクライアントに関する高いスケーラビリティを達成するための機構である。便宜上、図9及び図28と類似した構成要素には同様の符号を使用している。図28では、本発明の理解を容易にするために、WebLogic Application Server を表す単一のサーバ510が単一のデータベース502に通信可能に結合されている。しかし、図28の実施形態は、、多数のミラーリングされた(mirrored)データベース502へのアクセスを提供する多数の負荷平衡型アプリケーションサーバ510をサポートするものである、ということが当業者には理解されよう。
既に詳述した例示的なAPIルーチンは、小さな変更を伴うこの代替的な実施形態と共に適当且つ良好に機能するものである。この場合における最も重要な差は、APIルーチンがもはや1つ又は2つ以上のデータベース(この場合にはデータベース502)にアクセスする必要がないことである。該APIルーチンは、データベースではなくDVR37にアクセスするための更なるオプションを(好適にはRNSサーバ32を介して)認識するようプログラムされるべきである。例えば、一実施形態では、新しいリクエストがインサートされた際に該リクエストのネットワーク化されたDVRを通知する「インサートトリガ」を用いてデータベースを構成することが可能である。ウェブサーバ518からのファンクションコールを受信すると、アプリケーションサーバ510は、リクエストされた情報がアプリケーションサーバ内の何らかの記憶モジュール中に既に格納されている場合にデータベース502若しくはDVR37との通信を確立すべきか又はその何れに対しても通信を確立すべきでないかを決定する。しかし、APIルーチンに必要とされる如何なる変更も、該ルーチンがメディアベースのデバイスのリモートコントロールを可能にする際に従うことになる全体的な論理的なスキームに影響を与えることはない。
サーバ510を使用することの別の利点について以下に説明する。第1に、如何なるソフトウェアの変更もメディアベースのデバイス36及びDVR37に必要とはならない。第2に、外部ウェブサーバ518とサーバ510との間の通信をHTTPリクエスト、Java(R)サーブレット、又はアプリケーションモジュール514,516を使用するJava(R)アプリケーションを介して容易化することが可能である。したがって、RNSサーバ32は、HTTPリクエストをサーバ510に直接リダイレクトし、又はJava(R)サーブレットを利用して必要とされるサーバ518との通信を実行することになる。第3に、RNSサーバ32は、図2及び図5の実施形態の場合のように複数のRNSサーバ32にわたりミラーリングされた大量のファイルのコレクションをもはや維持する必要がない。その代わりに、図28に示す代替的な実施形態を用いて、デバイス36及びDVR37によりリクエストされ提供されたデータの全てがRNSサーバ32によりサーバ510へと仲介される。第4に、全てのデータがデータベース502上に格納された際に、サーバ510上で実行されているクランチャアプリケーション116は、もはやファイルを処理して複数のRNSサーバ32間で分配する必要がなくなる。図28の実施形態の場合、クランチャアプリケーション116は、TMSサーバ112からEPGデータを取り出し、該取り出したEPGデータを使用してチャネルガイドを構築し、該構築したチャネルガイドをデータベース502に格納する。第5に、サーバ510を単一のアクセスポイントとして使用してデータベース502に格納されているデータにアクセスするように多数のアプリケーションを開発することが可能である。これは、スケーラビリティ及びセキュリティを改善するだけでなく、メディアベースのデバイス36及びDVR37のための新たなアプリケーションを容易に且つ急速に開発する能力を改善するものとなる。
図2及び図5に示す実施形態の場合とは対照的に、ウェブサーバ518は、もはやTomcat(R)サーバと通信する必要がなくなり、APIの負荷平衡を実施するためにWebLogic Application Server 510と通信することになる。更に、これらの実施形態は、システムの冗長性を提供する場合に、すなわち、1つ又は2つ以上のサーバが動作不能になった場合又は特定のサーバで過負荷が生じた場合に、有利なものである。したがって、ウェブサーバ518及びメディアベースのデバイス36からのHTTPリクエストは、WebLogic Application Server 510に送られて分散されることになる。
特定の実施形態に関して本発明をかなり詳細に説明してきたが、他の実施形態もまた実施可能である。当業者には理解されるように、本発明は、その本質的な特徴から逸脱することなく他の特定の形態で実施することが可能である。したがって、本発明は、特許請求の範囲及びその等価物の思想及び範囲に含まれるかかる代替例、修正例、及び変形例の全てを包含することを意図したものである。
【図面の簡単な説明】
【図1A】
メディアベースのデバイス及びアプライアンスの通信ネットワークを介したリモートコントロールを可能にする本発明によるコンピュータベースの通信システムを示す高レベルブロック図である。
【図1B】
図1Aのコンピュータベースの通信システムの代替的な実施形態を示す高レベルブロック図である。
【図2】
本発明による図1Aのコンピュータベースの通信システムの第1の実施形態を示すブロック図である。
【図3】
本発明によるクライアントベースのコンピュータ、サーバ、及びメディアベースのデバイスのためのハードウェアの一実施形態を示すブロック図である。
【図4A】
クライアントコンピュータの主記憶装置を示すブロック図である。
【図4B】
サーバの主記憶装置を示すブロック図である。
【図4C】
中間層サーバの主記憶装置を示すブロック図である。
【図4D】
メディアベースのデバイス及びアプライアンスの主記憶装置を示すブロック図である。
【図5】
図1Aのコンピュータベースの通信システムの代替的な実施形態を示すブロック図である。
【図6】
バッチリクエストサーバの主記憶装置を示すブロック図である。
【図7】
クライアントユーザ及びDVRに関する関連情報を示す例示的な分類図(class diagram)である。
【図8】
RNSサーバの主記憶装置を示すブロック図である。
【図9】
RNSサーバがオンラインソースからEPGデータを受信することを可能にする本発明によるバックエンドの一実施形態を示すブロック図である。
【図10】
本発明によるディジタルビデオレコーダを有する対話型テレビジョンサブシステムの例示的な実施形態を示すブロック図である。
【図11】
本発明のコンピュータベースの通信システムにログインしアクセスするための例示的なユーザインタフェイスを図式的に示す説明図である。
【図12A】
番組ガイド情報を示すための例示的なユーザインタフェイスを図式的に示す説明図である。
【図12B】
図12Aのユーザインタフェイスのための例示的なドロップダウンメニューを図式的に示す説明図である。
【図13A】
図1Aのコンピュータベースの通信システム全体を通したデータの流れを示すブロック図である。
【図13B】
図2及び図5のコンピュータベースの通信システムのフロントエンドにログインすると共にそのバックエンドで「バッチ」通信を行うための一実施形態を示すシーケンス図である。
【図14】
本発明によるAPIの一実施形態で実施される機能及びそれに対応する機能を列挙した表である。
【図15】
本発明によるAPIの一実施形態で実施される機能及びそれに対応する入力パラメータ及び出力ファイルを列挙した表である。
【図16A】
本発明によるフロントエンドの実装の一実施形態を示す高レベルブロック図である。
【図16B】
図16AのフロントエンドにおけるAPIの更なる詳細を示すデータフローのブロック図である。
【図17】
APIの一部として実施されるリクエスト追加ルーチンにより扱われる多数のリクエストを示すチャートである。
【図18】
図12Aのユーザインタフェイスに基づくユーザリクエストに応答する機構を実施するための方法の一実施形態を示すフローチャートである。
【図19A】
再生チャネルにより編成された再生ガイド情報を示すための例示的なユーザインタフェイスを図式的に示す説明図である。
【図19B】
記録済ショー(Recorded Show)により編成された再生ガイド情報を示すための例示的なユーザインタフェイスを図式的に示す説明図である。
【図20】
図19Aに示すユーザインタフェイスに基づくユーザリクエストに応答する機構を実施するための1つの方法を示すフローチャートである。
【図21】
図19Bに示すユーザインタフェイスに基づくユーザリクエストに応答する機構を実施するための1つの方法を示すフローチャートである。
【図22】
ショー探索ページに基づいて探索を実行するための例示的なユーザインタフェイスを図式的に示す説明図である。
【図23】
図22に示すユーザインタフェイスに基づくユーザリクエストに応答する機構を実施するための1つの方法を示すフローチャートである。
【図24A】
マニュアル記録ページに関する単一の記録を示すための例示的なユーザインタフェイスを図式的に示す説明図である。
【図24B】
反復マニュアル記録のための例示的なユーザインタフェイスを図式的に示す説明図である。
【図25】
図24Aに示すユーザインタフェイスに基づくユーザリクエストに応答する機構を実施するための1つの方法を示すフローチャートである。
【図26】
ユーザログインプロセスを実施するための1つの方法を示すフローチャートである。
【図27】
本発明による図1Bのコンピュータベースの通信システムの一実施形態を更に詳細に示すブロック図である。
【図28】
図1Bのコンピュータベースの通信システムの代替的な一実施形態を示すブロック図である。
【図29】
コンピュータベースの通信システムの代替的な一実施形態を示すブロック図である。
【図30】
図28のコンピュータベースの通信システムを詳細に示すブロック図である。
【図31】
負荷平衡型(load−balanced)コンピュータベースの通信システムのための分散アーキテクチャを示す高レベルブロック図である。
【符号の説明】
10A     通信システム
12a     ネットワークコンピューティングシステム
14a     データ統合システム
16a     メディアベースのコンピューティングシステム
18     クライアントコンピュータ
28−1〜28−n サーバコンピュータ
32     RNSサーバ
36     メディアベースのデバイス及びアプライアンス
38     ネットワーク
44,50    データベース
48     バッチリクエストサーバ
54     オンラインサービス

Claims (54)

  1. ネットワークに通信可能に結合された第1サーバからコマンドを受信したことに応じて1つ又は2つ以上のデータソースからデータを抽出し、
    前記コマンドを前記抽出されたデータと組み合わせて、メディアデバイスを動作させるためのインタフェイスに対応する統合化された提示を形成し、
    前記ネットワークに結合されたクライアント上に表示するために前記統合化された提示を前記第1サーバに送信する、
    という各ステップ含む、前記ネットワークを介して前記メディアデバイスの動作をシミュレートする方法。
  2. 前記第1サーバによりウェブホスティングされた第2サーバが前記コマンドを受信する、請求項1に記載の方法。
  3. 前記第2サーバが、前記メディアデバイスの動作に関連する機能をカプセル化するために複数のオブジェクトのインスタンスを生成し、該オブジェクトが、前記メディアデバイスを動作させるためのプログラム可能なインタフェイスを含む、請求項2に記載の方法。
  4. 前記メディアデバイスの動作が、前記プログラム可能なインタフェイスを使用してシミュレートされる、請求項3に記載の方法。
  5. 前記コマンドのうちの1つにより、前記第1サーバが前記コマンドを受信するために前記第2サーバにアクセスする、請求項2に記載の方法。
  6. 前記統合化された提示がXML形式で送信される、請求項1に記載の方法。
  7. 前記データソースが、データベース、前記メディアデバイス、及びオンラインサービスを含む、請求項1に記載の方法。
  8. 前記データソースが、電子的な形式を有する放送番組ガイドを含む、請求項1に記載の方法。
  9. 前記ネットワークがインターネットを含む、請求項1に記載の方法。
  10. 前記メディアデバイスがディジタルビデオレコーダを含む、請求項1に記載の方法。
  11. 前記インタフェイスが、ログインインタフェイス、チャネルガイド、再生ガイド、再生ショー、再生チャネル、ショー探索、及びマニュアル記録からなる一群のインタフェイスから選択される、請求項1に記載の方法。
  12. 前記クライアントがブラウザを含む、請求項1に記載の方法。
  13. 第1サーバにアクセスしてウェブホスティングされたアプリケーションを起動し、該ウェブホスティングされたアプリケーションが、メディアデバイスと通信して該メディアデバイスからデータを抽出することが可能なものであり、
    前記ウェブホスティングされたアプリケーションにより形成されると共に前記第1サーバへのアクセスに応じて該第1サーバにより送られる1つ又は2つ以上の統合化された提示を受信し、該統合化された提示の各々が、メディアデバイスの対応するインタフェイスを複製するために抽出されたデータを含み、
    前記インタフェイスの一部を選択して1つ又は2つ以上のコマンドを開始して前記メディアデバイスを動作させる、
    という各ステップを含む、ウェブホスティングされたアプリケーションを介してメディアデバイスを動作させる方法。
  14. 前記ウェブホスティングされたアプリケーションが、受信したコマンドを前記メディアデバイスに送信して該メディアデバイスを動作させる、請求項13に記載の方法。
  15. 前記ウェブホスティングされたアプリケーションが、前記メディアデバイスの動作に関連する機能をカプセル化するために複数のオブジェクトのインスタンスを生成し、該オブジェクトが、前記メディアデバイスを動作させるためのプログラム可能なインタフェイスを含む、請求項13に記載の方法。
  16. 前記プログラム可能なインタフェイスを使用して前記メディアデバイスを動作させるステップを更に含む、請求項15に記載の方法。
  17. 前記コマンドのうちの1つによって前記第1サーバが前記第2サーバにアクセスし、前記ウェブホスティングされたアプリケーションが該第2サーバ上で実行される、請求項13に記載の方法。
  18. 前記統合化された提示がXML形式で送信される、請求項13に記載の方法。
  19. 前記抽出されたデータを、前記ウェブホスティングされたアプリケーションにより受信された1つ又は2つ以上のデータソースからの更なるデータと組み合わせることにより、前記統合化された提示が形成される、請求項13に記載の方法。
  20. 前記データソースが、データベース及びオンラインサービスを含む、請求項19に記載の方法。
  21. 前記データソースが、電子的な形式を有する放送番組ガイドを含む、請求項19に記載の方法。
  22. 前記第1サーバへのアクセスが、HTTPリクエストをインターネットを介して該第1サーバへ送ることを含む、請求項13に記載の方法。
  23. 前記メディアデバイスが、ディジタルビデオレコーダ、パーソナルディジタルアシスタント、携帯電話、及びページャからなる一群から選択される、請求項13に記載の方法。
  24. 前記インタフェイスが、ログインインタフェイス、チャネルガイド、再生ガイド、再生ショー、再生チャネル、ショー探索、及びマニュアル記録からなる一群のインタフェイスから選択される、請求項13に記載の方法。
  25. 前記データが定期的に抽出される、請求項13に記載の方法。
  26. 前記データがオン・ザ・フライで抽出される、請求項13に記載の方法。
  27. 既存の情報とメディアデバイスを含む複数のデータソースから抽出されたデータとのローカルな表現を維持し、
    前記既存の情報を前記抽出されたデータと組み合わせることにより統合化された提示を形成し、
    クライアントからの指示を受信したことに応じて該クライアント上に表示するために前記統合化された提示をネットワークコンピューティングシステムに送信し、
    前記統合化された提示の一部が選択されたことに応じて前記クライアントからコマンドを受信し、該コマンドが、前記メディアデバイス上で実行すべき動作を表すものであり、
    前記ローカルな表現を前記コマンドを用いて更新し、
    該コマンドを前記メディアデバイスに送って該メディアデバイス上で前記動作を実行する、
    という各ステップを含む、少なくとも1つのメディアデバイスを遠隔制御する方法。
  28. 前記ネットワークコンピューティングシステムが、ネットワークに通信可能に結合された少なくとも1つのウェブサーバを含み、該ウェブサーバが、前記ネットワークを介して前記統合化された提示を受信し前記クライアントに転送する、請求項27に記載の方法。
  29. 前記ネットワークがインターネットを含む、請求項28に記載の方法。
  30. 前記データソースが、データベース及びオンラインウェブサイトからなる一群から選択される、請求項27に記載の方法。
  31. 前記統合化された提示が、前記メディアデバイスに関するユーザインタフェイスの仮想的な表現を含む、請求項27に記載の方法。
  32. 前記ローカルな表現を維持する前記ステップが、既存の情報及びデータベース上のデータを格納することを含む、請求項27に記載の方法。
  33. 前記メディアデバイスの動作に関連する機能をカプセル化するために複数のオブジェクトのインスタンスを生成するステップを更に含み、該オブジェクトが、前記メディアデバイス上での動作を呼び出すためのプログラム可能なインタフェイスを含む、請求項27に記載の方法。
  34. 前記プログラム可能なインタフェイスを使用して前記メディアデバイスにコマンドを送るステップを更に含む、請求項33に記載の方法。
  35. 前記統合化された提示がXML形式で送信される、請求項27に記載の方法。
  36. 前記データソースが電子的な形式を有する放送番組ガイドを含む、請求項27に記載の方法。
  37. 前記メディアデバイスがディジタルビデオレコーダを含む、請求項27に記載の方法。
  38. 前記統合化された提示が、ログインインタフェイス、チャネルガイド、再生ガイド、再生ショー、再生チャネル、ショー探索、及びマニュアル記録からなる一群のインタフェイスから選択される、請求項27に記載の方法。
  39. 前記クライアントがブラウザを含む、請求項27に記載の方法。
  40. 前記ローカルな表現が定期的に維持される、請求項27に記載の方法。
  41. 前記ローカルな表現がオン・ザ・フライで維持される、請求項27に記載の方法。
  42. 負荷平衡化された構成で分散された1つまたは2つ以上のメディアデバイスを有する第1サブシステムと、
    該第1サブシステムに結合された第2サブシステムであって、前記メディアデバイスの各々から複製された1つ又は2つ以上のユーザインタフェイスの仮想的な表現を維持する、第2サブシステムと、
    該第2サブシステムに結合された第3サブシステムであって、前記仮想的な表現を表示し、及び選択されたユーザインタフェイスの部分に基づき前記メディアデバイスの動作をシミュレートする、第3サブシステムと
    とを含むシステム。
  43. 前記ユーザインタフェイスが定期的に複製される、請求項42に記載のシステム。
  44. 前記第3サブシステムが、ネットワークに通信可能に結合された少なくとも1つのウェブサーバを含み、該ウェブサーバが、ネットワークを介して前記仮想的な表現を受信し表示のためにクライアントに転送する、請求項42に記載のシステム。
  45. 前記ネットワークがインターネットを含む、請求項44に記載のシステム。
  46. 前記第2サブシステムが、前記仮想的な表現を格納している少なくとも1つのデータベースを含む、請求項44に記載のシステム。
  47. 前記第2サブシステムが、第1サーバ及び第2サーバを含み、該第1サーバが前記メディアデバイスと定期的に通信し、前記第2サーバが対応するウェブサーバを介して前記クライアントに前記仮想的な表現を転送する、請求項46に記載のシステム。
  48. 前記クライアントがブラウザを含む、請求項44に記載のシステム。
  49. 前記メディアデバイスの各々がディジタルビデオレコーダを含む、請求項42に記載のシステム。
  50. 前記インタフェイスが、ログインインタフェイス、チャネルガイド、再生ガイド、再生ショー、再生チャネル、ショー探索、及びマニュアル記録からなる一群のインタフェイスから選択される、請求項42に記載の方法。
  51. ネットワークを介してメディアデバイスの動作をシミュレートするためのコンピュータプログラム製品であって、コンピュータにより読み出しを行うことが可能な媒体上に格納されており、
    ネットワークに通信可能に結合された第1サーバからコマンドを受信したことに応じて1つ又は2つ以上のデータソースからデータを抽出し、
    前記コマンドを前記抽出したデータと組み合わせて、メディアデバイスを動作させるためのインタフェイスに対応する統合化された提示を形成し、
    前記ネットワークに結合されたクライアント上に表示するために前記統合化された提示を前記第1サーバに送信する、
    という各動作を実行するよう構成されている、コンピュータプログラム製品。
  52. ウェブホスティングされたアプリケーションを介してメディアデバイスを動作させるためのコンピュータプログラム製品であって、コンピュータにより読み出しを行うことが可能な媒体上に格納されており、
    第1サーバにアクセスしてウェブホスティングされたアプリケーションを起動し、該ウェブホスティングされたアプリケーションが、メディアデバイスと通信して該メディアデバイスからデータを抽出することが可能なものであり、
    前記ウェブホスティングされたアプリケーションにより形成されると共に前記第1サーバへのアクセスに応じて該第1サーバにより送られる1つ又は2つ以上の統合化された提示を受信し、該統合化された提示の各々が、前記メディアデバイスの対応するインタフェイスを複製するために抽出されたデータを含み、
    前記インタフェイスの一部を選択して1つ又は2つ以上のコマンドを開始して前記メディアデバイスを動作させる、
    という各動作を実行するよう構成されている、コンピュータプログラム製品。
  53. 少なくとも1つのメディアデバイスを遠隔制御するためのコンピュータプログラム製品であって、コンピュータにより読み出しを行うことが可能な媒体上に格納されており、
    既存の情報とメディアデバイスを含む複数のデータソースから抽出されたデータとのローカルな表現を維持し、
    前記既存の情報を前記抽出されたデータと組み合わせることにより統合化された提示を形成し、
    クライアントからの指示を受信したことに応じて該クライアント上に表示するために前記統合化された提示をネットワークコンピューティングシステムに送信し、
    前記統合化された提示の一部が選択されたことに応じて前記クライアントからコマンドを受信し、該コマンドが、前記メディアデバイス上で実行すべき動作を表すものであり、
    前記ローカルな表現を前記コマンドを用いて更新し、
    該コマンドを前記メディアデバイスに送って該メディアデバイス上で前記動作を実行する、
    という各動作を実行するよう構成されている、コンピュータプログラム製品。
  54. ウェブホスティングされたアプリケーションを実行している第1サーバに少なくとも1つのクライアントのブラウザからアクセスし、
    該ウェブホスティングされたアプリケーションがデータベースにアクセスして、メディアベースのデバイスから受信したユーザインタフェイス情報を前記ブラウザ上に表示し、
    ユーザの指示を受信して前記ユーザインタフェイス情報を変更し、
    前記第1サーバが、前記メディアベースのデバイスへのアーカイブ及び転送のために前記ユーザの指示を前記ウェブホスティングされたアプリケーションのデータベースに送る、
    という各ステップを含む、ウェブホスティングされたアプリケーションを介してメディアベースのデバイスに対する制御入力を提供するためのコンピュータにより実施される方法。
JP2002518078A 2000-08-08 2001-08-08 リモートテレビジョン再生制御 Pending JP2004506351A (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US22385600P 2000-08-08 2000-08-08
US24831300P 2000-11-14 2000-11-14
US25893700P 2000-12-29 2000-12-29
US25894000P 2000-12-29 2000-12-29
US09/925,121 US20020080166A1 (en) 2000-08-08 2001-08-08 Method and system for remote television replay control
US09/925,109 US7917602B2 (en) 2000-08-08 2001-08-08 Method and system for remote television replay control
PCT/US2001/024895 WO2002013527A2 (en) 2000-08-08 2001-08-08 Method and system for remote television replay control

Publications (1)

Publication Number Publication Date
JP2004506351A true JP2004506351A (ja) 2004-02-26

Family

ID=27559168

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002518078A Pending JP2004506351A (ja) 2000-08-08 2001-08-08 リモートテレビジョン再生制御

Country Status (3)

Country Link
EP (1) EP1308042B1 (ja)
JP (1) JP2004506351A (ja)
WO (1) WO2002013527A2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002013526A2 (en) 2000-08-08 2002-02-14 Replaytv, Inc. Method and system for remote television replay control
US10390074B2 (en) 2000-08-08 2019-08-20 The Directv Group, Inc. One click web records
US9171851B2 (en) 2000-08-08 2015-10-27 The Directv Group, Inc. One click web records
AU2003271118A1 (en) 2002-10-11 2004-05-04 Sony Corporation Network control confirmation system, control communication terminal, server, and network control confirmation method

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998010589A1 (en) * 1996-09-03 1998-03-12 Starsight Telecast, Inc. Schedule system with enhanced recording capability
US5956487A (en) * 1996-10-25 1999-09-21 Hewlett-Packard Company Embedding web access mechanism in an appliance for user interface functions including a web server and web browser
WO2000028733A1 (en) * 1998-11-10 2000-05-18 United Video Properties, Inc. On-line schedule system with personalization features

Also Published As

Publication number Publication date
WO2002013527A9 (en) 2003-04-03
WO2002013527A2 (en) 2002-02-14
WO2002013527A3 (en) 2002-07-18
EP1308042B1 (en) 2013-10-02
EP1308042A2 (en) 2003-05-07

Similar Documents

Publication Publication Date Title
US10320503B2 (en) Method and system for remote television replay control
US9171851B2 (en) One click web records
US20070136445A1 (en) Method and system for remote television replay control
US8959181B2 (en) System and method for creating and posting media lists for purposes of subsequent playback
US20080127257A1 (en) System and method for viewing a TV program guide on a mobile device background
US8219692B2 (en) Method and apparatus for storing and restoring state information of remote user interface
JP2010502100A (ja) テレビ受信機用インターネットアダプタシステム及びその方法
WO2002054773A2 (en) One click web records
JP2004506351A (ja) リモートテレビジョン再生制御
US10390074B2 (en) One click web records

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20040319

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20040319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060523

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060823

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060908

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20061019

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070206