[go: up one dir, main page]

JP2003323310A - 分散アプリケーションのスケーリングおよび配信 - Google Patents

分散アプリケーションのスケーリングおよび配信

Info

Publication number
JP2003323310A
JP2003323310A JP2002361361A JP2002361361A JP2003323310A JP 2003323310 A JP2003323310 A JP 2003323310A JP 2002361361 A JP2002361361 A JP 2002361361A JP 2002361361 A JP2002361361 A JP 2002361361A JP 2003323310 A JP2003323310 A JP 2003323310A
Authority
JP
Japan
Prior art keywords
node
application
user interface
central server
content
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.)
Granted
Application number
JP2002361361A
Other languages
English (en)
Other versions
JP4694091B2 (ja
Inventor
Tantek Celik
セリク タンテク
Steven Jon Falkenburg
ジョン ファルケンバーグ スティーブン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WebTV Networks Inc
Original Assignee
WebTV Networks Inc
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
Application filed by WebTV Networks Inc filed Critical WebTV Networks Inc
Publication of JP2003323310A publication Critical patent/JP2003323310A/ja
Application granted granted Critical
Publication of JP4694091B2 publication Critical patent/JP4694091B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • H04L12/2812Exchanging configuration information on appliance services in a home automation network describing content present in a home automation network, e.g. audio video content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2838Distribution of signals within a home automation network, e.g. involving splitting/multiplexing signals to/from different paths
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • 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/4122Peripherals receiving signals from specially adapted client devices additional display device, e.g. video projector
    • 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/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/43615Interfacing a Home Network, e.g. for connecting the client to a plurality of peripherals
    • 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
    • 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/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • H04N21/8173End-user applications, e.g. Web browser, game
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L2012/2847Home automation networks characterised by the type of home appliance used
    • H04L2012/2849Audio/video appliances

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Automation & Control Theory (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】 ネットワーク内のサーバおよび1つまたは複
数のノードにわたってアプリケーションを分散させるシ
ステムおよび方法を提供すること。 【解決手段】 ノードのオン又はブート時、ノード・ア
プリケーションがサーバに要求され、ノード上にロード
される。ノード・アプリケーションはノード上で動作し
て、他の機能アプリケーションを選択するユーザ・イン
ターフェースを提供し、選択されたアプリケーションを
ロード/アンロードし、アプリケーションのノード・リ
ソースを管理する。各アプリケーションはサーバ上で動
作するプロセス部分とノード上にロードされるユーザ・
インターフェース部分とを備えて開発される。ノード・
アプリケーションは、ノード・アプリケーションによっ
て提供される利用可能な規格を用いてアプリケーション
がユーザ・インターフェースを構築できるように、各ア
プリケーションのユーザ・インターフェース部分へのサ
ポートを提供する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ネットワーク内に
分散したアプリケーションを管理するためのシステムお
よび方法に関する。より詳細には、本発明は、ネットワ
ーク内のクライアントまたはノードの機能をサポートす
るアプリケーションを送達し、ホスティングするための
システムおよび方法に関する。
【0002】
【従来の技術】多くの家庭では、様々な異なる放送ソー
スから、テレビジョン番組およびインターネットに関係
するデータなどのコンテンツを受信している。サテライ
ト・システム、ケーブル・テレビジョン・システム、お
よびインターネットなどのコンピュータ・ネットワーク
は、それを介してコンテンツを受信するシステムおよび
放送ソースの例である。異なるタイプのコンテンツが利
用可能になるにつれて、そのコンテンツにアクセスする
のに用いる装置(セットトップボックスおよびコンピュ
ータ)は、サテライト・テレビジョン番組、またはケー
ブル・テレビジョン番組をユーザが閲覧することを可能
にする同じセットトップボックスが、インターネットを
ユーザがブラウズすることを可能にするという意味で区
別できなくなりつつある。この同じセットトップボック
スが、しばしば、Eメール、インスタント・メッセージ
ング、およびデジタル・ビデオ録画などの他のアプリケ
ーションに対して用いられている。
【0003】セットトップボックスの機能が向上するに
つれて、多くの家庭では、複数のセットトップボックス
を有するようになりつつある。例えば、多くの家庭で
は、テレビジョン・セットごとにセットトップボックス
を有している。家庭で受信するコンテンツのすべてをよ
り良好に管理するために、コンテンツは、多くの場合、
家庭内の様々なセットトップボックス(中央サーバのノ
ードまたはクライアント)にコンテンツを送達する役割
を果たすゲートウェイまたは中央サーバ・コンピュータ
を介して家庭に入り込む。実質上、家庭は、ホーム・サ
ーバ・コンピュータを介して外部システムまたはコンテ
ンツ・ソースと接続する小規模ネットワークを有する。
したがってホーム・サーバ・コンピュータは、ホーム・
ネットワークの様々なノードまたはクライアントにコン
テンツを配布する役割を果たす。
【0004】単一のサーバから、複数のセットトップボ
ックスに至るホーム・ネットワーク全体にコンテンツを
配布する目的でアプリケーションを首尾よく開発(deve
lop)するには、いくつかの難点がある。多くの場合、
様々なセットトップボックスは、利用可能な規格を正確
に実装しておらず、または利用可能な規格を完全には実
装していない。例えば、特定の家庭では、あるテレビジ
ョンに対してサテライト・セットトップボックスを有
し、別のテレビジョンに対してウェブ・ブラウジング・
セットトップボックスを有することがある。リモート・
サーバからサテライト・システムを介して取り出された
コンテンツがサテライト・セットトップボックスにとっ
て利用可能である場合であっても、そのサテライト・セ
ットトップボックスがその情報またはコンテンツを表示
できないことがあり得る。加えて、多くのアプリケーシ
ョンは、特定のシステム・アーキテクチャおよび/また
は特定のオペレーティング・システムに依存する。不正
確に実装された規格と、システム・アーキテクチャおよ
びオペレーティング・システムに対する依存性は、多く
の場合に、性能の低下そして要求されたコンテンツの配
布の失敗に帰着する可能性がある非互換性の原因にな
る。
【0005】通常、ホーム・ネットワークの中央サーバ
は、ホーム・ネットワークのクライアントまたはノード
よりも強力(powerful)である。より非力なノードを使
用してこの方式でホーム・ネットワークを作成すること
は、例えば、コストおよびコンピューティング・ロード
(計算負荷)の分散の問題に対処する。ノードまたはク
ライアントはそれほど高価ではないので、消費者のホー
ム・ネットワークのコストが軽減される。
【0006】しかし、サーバと様々なノードとの間のコ
ンピューティング・ロードの分散は、現在のネットワー
クでは固定されている。特定のノードまたはサーバのリ
ソースを動的に割り振ることができないことにより、性
能が低下し、ユーザ体験(user experience)が不十分
なものとなる可能性がある。リソースを動的に割り振る
ことができない問題は、多くのアプリケーションがノー
ド上で実行するように設計されており、サーバ上で実行
できないという事実によって複雑化する。多くの場合、
サーバ・コンピュータが家族の一員の誰かからのノード
であるかのように使用されるので、このことは重大な意
味を持っている。
【0007】この問題に対する1つのアプローチは、シ
ン・クライアント・アプローチ(Thin Client approac
h;処理が軽いパソコン手法)である。しかしシン・ク
ライアント・アプローチにより、様々な問題が生じる。
シン・クライアント・システムでは、例えばデータ・ト
ランスポートは、しばしばグラフィックス・デバイス・
インターフェース(GDI)を用いて実施される。GD
Iは、実際にオブジェクトをレンダリングするコマンド
を画面に送ることによってオブジェクトを効率的に描画
する。言い換えればGDIは、ノードと中央サーバとの
間の通信を、描画コマンドおよびビットマップのレベル
に抽象化する。
【0008】このことは、いくつかの問題を生じさせ
る。まず、ビットマップ型ディスプレイに基づくユーザ
との対話に適応するために将来のノードが必要となり、
そのノード上で動作するどんなコードも、他のコンテン
ツに対してビデオを適切に配置できないことになる。加
えて、GDIインターフェースは他のタイプのノードに
対して実用的ではない。例えば純粋なオーディオ・ノー
ドではGDIは必要でなく、このシナリオではオーディ
オ・ノードはふさわしくない。
【0009】シン・クライアントによる解決策では、分
散処理を活用する能力の優位性が利用されない。ノード
とサーバとの間の分散が固定であるとき、サーバでの処
理能力(processing power)の向上が効率的に利用され
ない。このことは、例えばプロセッサ速度が増加するに
つれて明らかとなる。さらに、システム中のノード数が
増加するにつれ、サーバのリソースは、増大する負担が
課せられるようになる。
【0010】一方、シック・クライアント・アプローチ
(Thick Client approach;処理が重いパソコン手法)
もまた、様々な問題から不利な状況に置かれる。近年、
アプリケーションは、クライアント/サーバまたはウェ
ブ・ブラウザ/ウェブ・サーバ・アーキテクチャを念頭
に置いて開発されるようになっている。この方式でアプ
リケーションを開発することは、ソフトウェア開発者と
グラフィック・デザイナとの間で作業を容易に分割する
ことができるので効率的である。シック・クライアント
では、この実証された開発モデルが活用されない。特定
の製品のルック・アンド・フィールを変更することは難
しいので、各シック・クライアントにアプリケーション
をバインドすることは、開発中にパートナを変更または
追加する能力も、低下させる。
【0011】
【発明が解決しようとする課題】コンテンツを配布し、
スケーラブルかつ分散可能なアプリケーションを開発
(develop)するためのシステムおよび方法が求められ
ている。
【0012】
【課題を解決するための手段】これらの問題および他の
問題は、複数のノードに接続されるセントラル・サーバ
またはゲートウェイを含む、ネットワークまたは分散シ
ステムに実装される本発明により、克服される。アプリ
ケーションは、本発明に従ってサーバとノードにわたっ
て分散され、この分散アプリケーションによって、イン
ターネット・コンテンツおよびビデオ/オーディオ・コ
ンテンツが中央サーバを介して様々なノードに配布され
る。したがって、サーバは各ノードに接続され、各ノー
ドは、中央サーバを介して様々なシステムまたは放送ソ
ースからのコンテンツに対するアクセスを行う。このシ
ステムまたは同報通信源には、限定はしないが、サテラ
イト・システム、ケーブル・システム、インターネッ
ト、他のネットワーク、アンテナ・システムなど、ある
いはそれらの任意の組合せを含めることができる。
【0013】本発明は、配布するコンテンツを、単一サ
ーバを介して複数のクライアントまたはノードに配布す
るためのシステムおよび方法、ならびにスケーラブルか
つ分散可能なアプリケーションを開発し、オーサリング
することに向けられている。1つの例では、ネットワー
クの各ノードがセントラル・サーバからノード・アプリ
ケーションをロードする。このノード・アプリケーショ
ンは、様々なアプリケーションまたはノードの機能をユ
ーザが選択することができるユーザ・インターフェース
全体を提供する。このノード・アプリケーションは、こ
れらのアプリケーションをロード/アンロードし、ノー
ド上で動作するアプリケーションに対するサポートおよ
び互換性を実現し、ノードのリソースをアプリケーショ
ンに割り振る。ノード・アプリケーションは、限定はし
ないが、データ・ドリブン・アプリケーション、リモー
ト・プロシージャ・コール(remote procedure cal
l)、カスタム・ローデッド・コードなどを含む様々な
開発モデル(develop model)をサポートする。
【0014】ノードとサーバにわたって分散する各アプ
リケーションは、ユーザ・インターフェース部分および
プロセス部分を有する。ユーザ・インターフェース部分
は、一般にノード上で動作または実行し、ノード・アプ
リケーションのサポートで、HTML、XML、CS
S、PNG、MNG、JPEG、MPEGなどのレンダ
リングを担当する。また、ユーザ・インターフェース部
分は、ノード・アプリケーションのサポートで、CO
M、DCOM、ECMAScriptなどの実行または
処理も担当する。ユーザ・インターフェース部分は概し
て、ネットワークを介してプロセス部分と通信する。プ
ロセス部分は概してサーバ上で動作し、サーバの処理能
力を利用してデータにアクセスし、データを処理する。
一方、ユーザ・インターフェース部分は、ノード上で動
作し、処理したコンテンツをユーザに提示する。ノード
上のユーザ・インターフェース部分とサーバ上のプロセ
ス部分とを備えたプログラムまたはアプリケーションを
開発することにより、サーバとノードの両方のリソース
を動的に割り振ることを可能とする。
【0015】あるいは、ユーザ・インターフェース部分
は、適宜サーバおよび/またはノード上のユーザ・イン
ターフェース部分によって作成される1つまたは複数の
サービス部分に結合される。このサービス部分は、サー
バ上またはノード上のいずれかで作成することができ
る。サービス部分は、アプリケーションのユーザ・イン
ターフェース部分の要求を処理するようにも動作する。
【0016】本発明の追加の特徴および利点を以下で説
明する。本発明の追加の特徴および利点の一部は、以下
の説明から明らかとなろう。あるいは、本発明の追加の
特徴および利点は、本発明を実施することによって理解
することができる。本発明の特徴および利点は、添付の
特許請求の範囲で具体的に指摘される諸計器およびそれ
らの組合せによって理解することができ、得ることがで
きる。本発明のこれらの特徴および他の特徴は、以下の
説明および添付の特許請求の範囲によってより完全に明
らかとなろう。または、本発明のこれらの特徴および他
の特徴は、以下で述べる本発明を実施することによって
理解することができる。
【0017】上記で述べた本発明の利点および特徴、な
らびに他の利点および特徴を得ることができる方式を説
明するために、添付の図面に示す本発明の特定の実施形
態を参照しながら、上記で簡潔に述べた本発明をより具
体的に説明する。これらの図面は単に本発明の典型的な
実施形態を示すに過ぎず、したがって本発明の範囲を制
限するものとみなすべきではないことを理解して、本発
明を添付の図面を用いて、より具体的かつ詳細に説明す
る。
【0018】
【発明の実施の形態】本発明は、コンテンツを送達する
ためのネットワーク内で分散するアプリケーションの開
発(development)を対象とする。本発明の一態様は、
中央サーバと、ネットワークのノードとの間でアプリケ
ーションおよびコンテンツを配布するのに用いるノード
・アプリケーションである。ノードをブートまたはオン
したとき、ノード・アプリケーションは各ノード上にロ
ードされ、ユーザに対して初期ユーザ・インターフェー
スを表示する。すべての他のアプリケーションおよびユ
ーザ・インターフェースは、ノードでのユーザ・アクシ
ョンとサーバからの着信通知とに応答して立ち上がる。
【0019】各分散アプリケーションは、ユーザ・イン
ターフェース部分およびプロセス部分を有する。ユーザ
・インターフェース部分は、ノード・アプリケーション
によってノード上にロードされ、アプリケーション特有
のコンテンツをユーザに提示する。分散アプリケーショ
ンのプロセス部分は、概してサーバ上で実行され、サー
バのリソースを利用して、計算的により時間を要するタ
スクを実行することができる。あるいは、分散アプリケ
ーションは、サーバまたはノードのどちらかで実行する
ことができる1つまたは複数のサービス部分を生成し
て、ユーザ・インターフェース部分による要求を実行す
る。
【0020】ノード・アプリケーションは、分散アプリ
ケーションのユーザ・インターフェース部分をサポート
する。ノード・アプリケーションは、限定はしないが、
HTML、XML、XHTML、CSS、PNG、MN
G、JPEG、MPEG、DOM、ECMAScrip
t、SOAP、HTTP、TCP/IP、DCOMなど
を含む複数の規格の実装を提供する。ノード・アプリケ
ーションはまた、分散アプリケーションとノードの間の
互換性も実現し、サーバとノードにわたってアプリケー
ションを動的に、合わせ込み、分散させることを可能に
し、かつノードとサーバの両方でアプリケーションがロ
ーカルに動作することを可能にする。ノード・アプリケ
ーションは、ノード上およびサーバ上でのアプリケーシ
ョンのロードおよび実行をサポートする。ノード・アプ
リケーションはまた、現在ノード上で動作しているアプ
リケーションにリソースを割り振る。
【0021】本発明の実施形態は、以下でより詳細に論
じるように、様々なコンピュータ・ハードウェアを含む
特殊目的コンピュータまたは汎用コンピュータを備える
ことができる。本発明の範囲内の実施形態はまた、コン
ピュータ実行可能命令またはデータ構造を搬送し、また
は格納するためのコンピュータ可読媒体も含む。このよ
うなコンピュータ可読媒体は、汎用コンピュータまたは
特殊目的コンピュータでアクセスすることができる入手
可能な媒体でよい。例えば、限定はしないが、そのよう
なコンピュータ可読媒体は、RAM、ROM、EEPR
OM、CD−ROMまたは他の光ディスク記憶媒体、磁
気ディスク記憶媒体または他の磁気記憶装置、あるいは
コンピュータ実行可能命令またはデータ構造の形の所望
のプログラム・コード手段を搬送または記憶するのに使
用することができ、かつ汎用コンピュータまたは特殊目
的コンピュータでアクセスすることができる他のどんな
媒体も備えることができる。情報がネットワークまたは
他の通信接続(ハードワイヤード、無線、あるいはハー
ドワイヤードまたは無線の組み合わせ)を介してコンピ
ュータに転送または供給されるとき、厳密には、コンピ
ュータはその接続をコンピュータ可読媒体として認識す
る。したがって、任意のそのような接続は、厳密にはコ
ンピュータ可読媒体と呼ばれる。上記の組み合わせもま
た、コンピュータ可読媒体の範囲内に含まれるべきであ
る。例えばコンピュータ実行可能命令は、ある機能また
は機能の集まりを汎用コンピュータ、特殊目的コンピュ
ータ、または特殊目的処理装置に実行させる命令および
データを含む。
【0022】図1および以下の議論は、本発明を実施す
ることができる適切なコンピューティング環境の簡潔で
一般的な説明を提供するものである。必須ではないが、
ネットワーク環境内のコンピュータによって実行される
プログラム・モジュールなどのコンピュータ実行可能命
令の一般的状況の下で本発明を説明する。一般に、プロ
グラム・モジュールは、特定のタスクを実行し、または
特定の抽象データ・タイプを実装するルーチン、プログ
ラム、オブジェクト、コンポーネント、データ構造など
を含んでいる。コンピュータ実行可能命令、関連するデ
ータ構造、およびプログラム・モジュールは、本明細書
で開示される方法のステップを実行するプログラム・コ
ード手段の例を表している。このような実行可能命令、
または関連するデータ構造の特定のシーケンスは、この
ようなステップで記述される機能を実装する行為に対応
する例を表している。
【0023】パーソナル・コンピュータ、ハンドヘルド
装置、マルチ・プロセッサ・システム、マイクロ・プロ
セッサ・ベースまたはプログラム可能な消費者向け電子
機器、ネットワークPC、ミニ・コンピュータ、メイン・
フレーム・コンピュータなどの多くのタイプのコンピュ
ータ・システム構成を有するネットワーク・コンピュー
ティング環境で本発明を実施できることを当業者は理解
されよう。本発明は、ローカル処理装置、ならびに通信
ネットワークを介して(ハードワイヤード・リンク、無
線リンク、あるいはハードワイヤードまたは無線リンク
の組み合わせによって)リンクされるリモート処理装置
によってタスクが実行される分散コンピューティング環
境でも実施することができる。分散コンピューティング
環境では、プログラム・モジュールは、ローカル・メモ
リ記憶装置とリモート・メモリ記憶装置のどちらにも配
置することができる。
【0024】図1を参照すると、本発明を実装するため
の例示的システムは、従来型コンピュータ20の形態の
汎用コンピューティング装置を含む。従来型コンピュー
タ20は、プロセッシング・ユニット21と、システム
・メモリ22と、システム・メモリ22を含む様々なシ
ステム構成要素を処理装置21に結合するシステム・バ
ス23とを含む。システム・バス23は、メモリ・バス
またはメモリ・コントローラと、周辺バスと、様々なバ
ス・アーキテクチャのうちのいずれかを用いるローカル
バスとを含むいくつかのタイプのバス構造のいずれでも
よい。システム・メモリは、読み取り専用メモリ(RO
M)24およびランダム・アクセス・メモリ(RAM)
25を含む。始動中などにコンピュータ20内の要素間
で情報を転送する助けになる基本ルーチンを含む基本入
出力システム(BIOS)26をROM24内に格納す
ることができる。
【0025】コンピュータ20はまた、磁気ハード・デ
ィスク39を読み書きするための磁気ハード・ディスク
・ドライブ27と、取り外し可能磁気ディスク29を読
み書きするための磁気ディスク・ドライブ28と、CD
−ROMまたは他の光媒体などの取り外し可能光ディス
ク31を読み書きするための光ディスク・ドライブ30
とを含むことができる。磁気ハード・ディスク・ドライ
ブ27、磁気ディスク・ドライブ28、および光ディス
ク・ドライブ30は、それぞれハード・ディスク・ドラ
イブ・インターフェース32、磁気ディスク・ドライブ
・インターフェース33、および光ドライブ・インター
フェース34によってシステム・バス23に接続され
る。ドライブと、それに関連するコンピュータ可読媒体
とにより、コンピュータ20に対して、コンピュータ実
行可能命令、データ構造、プログラム・モジュール、お
よび他のデータの不揮発性記憶が実現される。本明細書
で説明する例示的環境では、磁気ハード・ディスク3
9、取り外し可能磁気ディスク29、および取り外し可
能光ディスク31を使用しているが、データを格納する
ために、磁気カセット、フラッシュ・メモリ・カード、
デジタル・バーサタイル・ディスク、ベルヌーイ・カー
トリッジ、RAM、ROMなど、他のタイプのコンピュ
ータ可読媒体も使用することができる。
【0026】オペレーティング・システム35、1つま
たは複数のアプリケーション・プログラム36、他のプ
ログラム・モジュール37、およびプログラム・データ
38を含む1つまたは複数のプログラム・モジュールを
有するプログラム・コード手段は、ハード・ディスク3
9、磁気ディスク29、光ディスク31、ROM 2
4、またはRAM 25上に格納することができる。ユ
ーザは、キーボード40、ポインティング・デバイス4
2、あるいはマイクロフォン、ジョイスティック、ゲー
ム・パッド、サテライト・ディッシュ、スキャナなどの
他の入力装置(図示せず)を介してコンピュータ20に
コマンドおよび情報を入力することができる。これらの
入力装置および他の入力装置はしばしば、システム・バ
ス23に結合されたシリアル・ポート・インターフェー
ス46を介して処理装置21に接続される。あるいは入
力装置は、パラレル・ポート、ゲーム・ポート、または
ユニバーサル・シリアル・バス(USB)などの他のイ
ンターフェースによって接続することもできる。モニタ
47または他のディスプレイ装置もまた、ビデオ・アダ
プタ48などのインターフェースを介してシステム・バ
ス23に接続される。モニタに加えて、パーソナル・コ
ンピュータは一般に、スピーカおよびプリンタなどの他
の周辺出力装置(図示せず)を含む。
【0027】コンピュータ20は、リモート・コンピュ
ータ49aおよび49bなどの1つまたは複数のリモー
ト・コンピュータに対する論理接続を用いて、ネットワ
ーク環境で動作することができる。リモート・コンピュ
ータ49aおよび49bはそれぞれ、別のパーソナル・
コンピュータ、サーバ、ルータ、ネットワークPC、ピ
ア装置、または他の共通ネットワーク・ノードでよく、
一般にはコンピュータ20に関して上記で述べた要素の
うちの多くまたはすべてを含むが、図1にはメモリ記憶
装置50aおよび50bと、その関連するアプリケーシ
ョン・プログラム36aおよび36bだけを示してあ
る。図1に示す論理接続は、ローカルエリア・ネットワ
ーク(LAN)51およびワイドエリア・ネットワーク
(WAN)52を含む。これらは限定的なものではな
く、単に例として示したに過ぎない。このようなネット
ワーキング環境は、オフィス全体または企業全体のコン
ピュータ・ネットワーク、イントラネット、およびイン
ターネットで一般的なものである。
【0028】LANネットワーキング環境で使用すると
き、コンピュータ20は、ネットワーク・インターフェ
ースまたはアダプタ53を介してローカル・ネットワー
ク51に接続される。WANネットワーキング環境で使
用するとき、コンピュータ20は、モデム54、無線リ
ンク、あるいはインターネットなどのワイドエリア・ネ
ットワーク52を介して通信を確立するための他の手段
を含む。モデム54は内蔵でも外付けでもよく、シリア
ル・ポート・インターフェース46を介してシステム・
バス23に接続される。ネットワーク環境では、コンピ
ュータ20に関して示したプログラム・モジュールまた
はその一部は、リモート・メモリ記憶装置内に格納する
ことができる。ここで示したネットワーク接続は例示的
なものであって、ワイドエリア・ネットワーク52を介
して通信を確立する他の手段も使用できることを理解さ
れたい。
【0029】図2は、本発明のシステムおよび方法を実
装する例示的環境を示すブロック図である。この例では
図2は、限定はしないが、サテライト・システム20
6、インターネット208、ケーブル・システム21
0、あるいはそれらの任意の組み合わせを含むことがで
きる様々なシステムおよびネットワークを介してコンテ
ンツへのアクセスを有するネットワーク200を示して
いる。サテライト・システム206、インターネット2
08、およびケーブル・システム210を介して送受信
されるコンテンツには、限定はしないが、Eメール、イ
ンスタント・メッセージ、オーディオ、ビデオ、番組ガ
イド・データ、テレビジョン同報通信データ、ストリー
ミング・ビデオ/オーディオ・データ、サテライトまた
はケーブル・テレビジョン・コンテンツ、イメージ・デ
ータ、テキストなど、あるいはそれらの任意の組み合わ
せが含まれる。
【0030】サーバ201は、ネットワーク200に対
するゲートウェイとして機能する。サーバ201は、図
1に関連して述べた、この例におけるコンピュータであ
り、かつそれに加えて、サーバ201がインターネット
208に加えてサテライト・システム206および/ま
たはケーブル・システム210からのデータとインター
フェースし、受信することを可能にする構成要素も含
む。例えば、サーバ201は、サテライト信号およびケ
ーブル信号を特定のチャネルに同調することができるよ
うな1つまたは複数のチューナを含むことができる。サ
ーバ201はまた、同調したチャネルからビデオ・スト
リームを生成するのに必要な構成要素も含む。このビデ
オ・ストリームは、例えばテレビジョンまたはコンピュ
ータ・モニタなどのディスプレイ装置上にレンダリング
することができる。あるいは、これらのタイプの構成要
素をノードのうちの1つに含めることもできる。
【0031】サーバ201は記憶装置を含む。記憶装置
202は、アプリケーションおよびコンテンツを格納す
るのに使用される。例えば記憶装置202は、サテライ
ト・システムおよび/またはケーブル・システムを介し
て同報通信される番組を記録するのに使用することがで
きる。記憶装置202はまた、適宜サテライト・システ
ムおよびケーブル・システムを介して同報通信される番
組に関する番組ガイド・データも格納する。記憶装置2
02は、インターネット、Eメール、インスタント・メ
ッセージなどを介してダウンロードしたコンテンツを格
納する。サーバ201はまた、限定はしないが、テレビ
ジョン・イベント録画スケジューリングおよび競合解
決、番組ガイド・データ管理、サテライト・データ・ダ
ウンロード・サービス、ネットワーク・アドレス変換
(NAT)サーバ、タイム・サーバ、動的ホスト構成プ
ロトコル(DHCP)サーバなどを含む、他の構成要素
および機能も提供する。あるいは、この機能の一部はノ
ードに常駐することもできる。
【0032】ネットワーク200はまた、ノード21
2、ノード218、およびノード224として表されて
いる1つまたは複数のクライアントも含む。各ノードは
通常、当技術分野で一般に周知の様々な接続を用いてサ
ーバ201に接続される。図2の例では、各ノードは少
なくとも1つの装置にも接続されるが、特定のノードを
装置に接続する必要はない。例えば、ノードは一体型コ
ンピュータ・モニタを有するコンピュータであってもよ
い。あるいは、ノードは特定の装置に関連付けられたセ
ットトップボックスであってもよい。
【0033】この例では、ノード212がテレビジョン
216に接続される。したがって、サーバ201はビデ
オ/オーディオ・コンテンツをノード212に配布する
ことができ、その結果、ビデオ/オーディオ・コンテン
ツはテレビジョン216上にレンダリングされる。ノー
ド218はスピーカ222に接続され、サーバ201
は、コンテンツ源のうちの1つからのオーディオをノー
ド218に配布することができ、ノード218は、オー
ディオをスピーカ222に送達する。本発明により、コ
ンテンツ・ソースを介して受信されるコンテンツのタイ
プに関連付けられる他の装置も企図される。したがって
装置228は、一般に各装置を表し、テレビジョン、コ
ンピュータ・モニタ、スピーカ、イメージ・コンテンツ
を表示することができる対話式フレーム、インターネッ
ト装置、または他のどんな装置であってもよい。装置2
28向けのコンテンツは、ノード224を介して送達ま
たは配布される。ある例では、サーバ201は、それが
あたかもノードであるかのように使用されることができ
るので、この例ではディスプレイ装置216がサーバ2
01に接続されている。
【0034】各ノードは、以下で説明するようにアプリ
ケーションを実行することができ、かつ各ノードは、以
下で説明するノード・アプリケーションによってノード
上で実行中の様々なアプリケーションに動的に割り振ら
れるいくつかのリソースを有している。各ノードの例示
的リソースは、限定はしないが、プロセッサ、ネットワ
ーク、入力、サーバ・リソース、メモリ、スクリーン、
サウンド、およびイベントを含むことができる。各ノー
ドの例示的アプリケーションまたは機能は、限定はしな
いが、全般的なユーザ・インターフェース/機能−ナビ
ゲーション/プリファレンス、番組ガイド・データ、オ
ーディオ/ビデオ・プレーヤ、ビデオ録画、メディア・
ジュークボックス、ウェブ・ブラウジング、Eメール、
インスタント・メッセージングなどを含むことができ
る。
【0035】先に触れたように、各ノードはまた、図3
に関連して説明するノード・アプリケーションも有す
る。ノード・アプリケーション300は、特定のノード
上にロードされたとき、他のアプリケーションをロード
し、そのノード上で実行することを可能にする。ノード
・アプリケーション300はノードで全ユーザ・インタ
ーフェースを生成し、かつノード・アプリケーション3
00は、様々なアプリケーションにナビゲートし、ノー
ド上にアプリケーションをロードおよびノード上からア
プリケーションをアンロードし、ノード上で動作してい
るか、または動作することになる様々なアプリケーショ
ンに対してノード・リソースを管理し、割り振る能力を
ユーザに提供する。ノード・アプリケーション300
は、他のアプリケーションがサーバから動的にロードあ
るいはアンロードされる間、ノード上のあるアプリケー
ションに対するサポートを提供することができる。
【0036】ノード・アプリケーション300は、プレ
ゼンテーション・エンジン302、実行エンジン30
8、互換層304、および動的リソース割り振りモジュ
ール306を含む。プレゼンテーション・エンジン30
2は、限定はしないが、HTML4、CSS1、PNG
1、他のW3C規格などを含む様々な規格の完全な実装
を提供する。プレゼンテーション・エンジン302は、
ユーザ・インターフェースを描画または生成するために
アプリケーションで使用される。実行エンジン308
は、限定はしないが、DCOM、COM、およびECM
AScriptを含む、ノード・アプリケーションによ
ってロードされるアプリケーションがコードを実行する
ことを可能にする他の規格の実装を提供する。互換層3
04は、ノード・アプリケーションが、異なるオペレー
ティング・システム上、およびプロセッサ・アーキテク
チャ上で動作することを可能とする。動的リソース割り
振り306は、特定のアプリケーションが、動的に合致
することを可能とし、実行時にノードとサーバにわたっ
てプロセッサ負荷を分散させることを可能とする。ノー
ド・アプリケーション300はまた、機能アプリケーシ
ョンのユーザ・インターフェース部分をロードおよびア
ンロードするのに使用され、かつアプリケーションのプ
ロセス部分またはアプリケーションに関連付けられたサ
ービス部分に対して要求を行うのに使用される、ローデ
ィング・モジュールなど、他のモジュールも含む。
【0037】通常、ノードはサーバ210と同じリソー
スを有する必要はない。実際、本発明の1つの利点は、
各ノードのハードウェア要件を著しく軽減できることで
ある。例えば、ノードは、ハード・ドライブまたは他の
大容量記憶装置を有する必要がない。各ノードは最小限
のソフトウェアを有するだけでよく、各ノードはサーバ
201に依拠して、各アプリケーションの必要とする処
理を提供する。概して、各ノードは以下の機能を有し、
この機能は通常、読み取り専用メモリ(ROM)内に格
納される。その機能とは、ブート・クライアント、ネッ
トワーク・スタック、HTTPクライアントまたはTF
TPクライアント、および単純なユーザ・インターフェ
ース画面である。
【0038】ノードがオンまたは初期化されるとき、ブ
ート・クライアントは、単純なユーザ・インターフェー
スをユーザに表示し、中央サーバからアドレスを取得す
る。次に、ノード・アプリケーションがサーバから取り
出される。中央サーバがノード・アプリケーションを求
める要求を受け取ったとき、中央サーバは、ノード・ア
プリケーションがその特定のノードで利用可能である場
合、ノードにノード・アプリケーションを供給する。あ
るいは中央サーバは、インターネットなどのネットワー
クを介して、またはダイアルアップ接続を用いることな
どによって、別のサーバに適切なノード・アプリケーシ
ョンを要求することもできる。
【0039】ノード・アプリケーションがノードに供給
されると、そのノード・アプリケーションはノード上で
実行を開始し、予備(preliminary)ユーザ・インター
フェースを表示する。1つの例では、ノード・アプリケ
ーションは、中央サーバに現在の日付および時刻を要求
する。ノード・アプリケーションはまた、中央サーバか
らノード・プリファレンスを取り出す。ノードが新しい
ノードである場合、プリファレンス・プロファイルがそ
の新しいノードに対して作成される。例えば、ノード・
プリファレンスまたはプリファレンス・プロファイル
は、ノードのロケーション、ノードのタイプ、ノード・
シリアル番号、ノード機能(capabilities)などを含
む。次に、ノード・アプリケーションはサーバに初期ユ
ーザ・インターフェースを要求し、初期ユーザ・インタ
ーフェースが表示される。ユーザは、初期ユーザ・イン
ターフェースから、ノード・アプリケーションによって
ロードされて実行されるアプリケーションを選択するこ
とができる。
【0040】図4Aおよび4Bは、アプリケーションが
どの様にノードとサーバとの間で分散され得るかを示す
ブロック図である。図4Aは、アプリケーションが、ノ
ード上で動作するユーザ・インターフェース部分と、サ
ーバ上で動作するプロセス部分とを有する場合の例を示
している。図4Bは、アプリケーションが、ノード上で
動作するユーザ・インターフェース部分と、サーバ上ま
たはノード上のどちらかで動作している1つまたは複数
のサービス部分とを有する場合の例を示している。
【0041】図4は、アプリケーション開発と、ネット
ワーク内のアプリケーション分散の両方を示すブロック
図である。図4は、ノード408に接続されるサーバ4
00を示す。この例では、アプリケーション406はノ
ード408とサーバ400との間に動的に分散する。ア
プリケーション406は、サーバ400上のプロセス部
分404と、ノード408上のユーザ・インターフェー
ス部分410とを含む。ノード・アプリケーション41
2は、アプリケーション406をロード/アンロード
し、ノード408のリソースを、アプリケーション40
6のユーザ・インターフェース部分410に割り振る役
割を果たす。アプリケーション406はノード・アプリ
ケーション内で動作し、図4Aには単一のアプリケーシ
ョン406を示しているが、ノード・アプリケーション
412は複数のアプリケーションをサポートすることが
でき、それらのアプリケーション間でノード・リソース
を割り振ることになる。
【0042】ノード・アプリケーション412は、先に
述べたような様々な規格の実装を提供することによっ
て、アプリケーション406のユーザ・インターフェー
ス部分410に対するサポートを提供する。したがって
ノード・アプリケーション412は、限定はしないが、
HTML、XML、XHTML、CSS、PNG、MN
G、JPEG、MPEG、またはそれらの組み合わせな
どのデータ・ドリブン・アプリケーションに対するサポ
ートを提供する。ノード・アプリケーション412はま
た、限定はしないが、DOM、ECMAScriptな
ど、またはそれらの組み合わせを含むユーザ・インター
フェース部分410の処理的側面に対するサポートも提
供する。ノード・アプリケーション412を使用して、
ユーザ・インターフェース部分410は、アプリケーシ
ョン406用のユーザ・インターフェースを構築するこ
とができる。ユーザ・インターフェース部分410は、
ノード・アプリケーションを使用して、プレゼンテーシ
ョン関係の機能、ならびに処理関係の機能を実行する。
【0043】ノード・アプリケーション412はまた、
リモート・プロシージャ・コール(RPC)もサポート
する。分散されたコンポーネント・オブジェクト・モデ
ル(DCOM)およびシンプル・オブジェクト・アクセ
ス・プロトコル(SOAP)は、ユーザ・インターフェ
ース部分410がアプリケーション406のプロセス部
分404に対する関数コール(function call)または
プロシージャ・コール414を作成する、ことをノード
・アプリケーション412が許可する方法の例である。
ノード・アプリケーション412はまた、スクリプトま
たはコードのカプセル化に関する振る舞い(behavior
s)などのカスタム・ローデッド・コードも提供する。
【0044】図4Bは、プロセス部分をサービス部分4
20、421、および422で置き換えたことを除いて
図4Aと同様である。この例では、ユーザ・インターフ
ェース部分410は、適切なプロトコルを使用して、プ
ロシージャ・コールおよび関数コールを作成することが
できる。しかし、このプロシージャ・コールおよび関数
コールは、サービス部分420、421、および/また
は422に対して行われる。この例では、サービス部分
422は、サービス部分420および421がサーバ4
00上に常駐してそこで動作する間、ノード408上に
常駐してそこで動作する。1つの例では、サービス部分
は、例えば、データに関するタスクまたはプロシージャ
を実行することができるオブジェクトである。別の例で
は、サービス部分はDCOM(分散コンポーネント・オ
ブジェクト・モデル)オブジェクトであり、ノード・ア
プリケーションがDCOMをサポートするので、ユーザ
・インターフェース410はサービス部分に対するコー
ルを発行することができる。サービス部分は、ユーザ・
インターフェース部分で作成することができ、またはサ
ーバまたはノードの一部として既存であってもよい。
【0045】インターフェース部分およびプロセス部分
を用いる図4Aの状況で、以下の例を説明する。しかし
この例は、図4Bで説明したようなサービス部分を使用
して適合させることができる。ノードの一機能は、番組
コンテンツおよび番組ガイド・データをユーザに提供す
ることである。ガイド・データは、現在示されている番
組、ならびに将来示される番組の説明をユーザに提供す
る。ガイド・データには、限定はしないが、開始時刻お
よび終了時刻、番組の長さ、番組の表題、番組格付け
(program rating)などが含まれる。この例では、ガイ
ド・データ・アプリケーションは、ガイド・データをユ
ーザに提供または表示する役割を果たすことになる。
【0046】したがって、ガイド・データ・アプリケー
ションは、プロセス部分あるいは1つまたは複数のサー
ビス部分と、サーバとノードにわたって分散するユーザ
・インターフェース部分とを有する。ユーザがガイド・
データの閲覧を望むとき、ガイド・データ・アプリケー
ションのユーザ・インターフェース部分は、ガイド・デ
ータ・アプリケーションのプロセス部分に対してコール
を行うことになる。プロセス部分は、サーバ上にあるの
で、その要求を処理し、ガイド・データのデータベース
からデータを取り出す。プロセス部分はまた、必要に応
じてコンテンツの多重化、および他の処理も実行する。
ユーザ・インターフェース部分に戻されるデータは、ノ
ード・アプリケーションで提供されるサポートおよび規
格を用いて、ユーザ・インターフェース部分によって表
示される。
【0047】より具体的に、ノード・アプリケーション
の観点に立って、ガイド・データ・アプリケーションの
プロセス部分およびユーザ・インターフェース部分の分
散を例示するため、ユーザがテレビジョン・アプリケー
ション内からテレビジョンを視聴していると想定する。
あるとき、リモート制御装置上のガイド・ボタンがユー
ザによって押下される。テレビジョン・アプリケーショ
ン中のイベント・ハンドラが、ガイド・データ・アプリ
ケーションを立ち上げる。ガイド・データ・アプリケー
ションのユーザ・インターフェース部分コンポーネント
には、限定はしないが、ユーザ・インターフェースのX
HTML表現(representation)、XHTML内の広告
用のプレースホルダエリア、ガイド・データ・グリッド
を保持するXHTML内のプレースホルダエリア、ガイ
ド・データXHTMLのプレゼンテーションおよびレイ
アウトを記述するCSS、およびユーザ対話を示すガイ
ド・データの動的生成を制御する振る舞い(behavior)
を含めることができる。
【0048】次に、ガイド・データ・グリッドは、ノー
ド・アプリケーションが供給するCSSを用いるガイド
・データ・アプリケーションのユーザ・インターフェー
ス部分により、スタイリングされ、ユーザに対してレン
ダリングされる。要求がサーバに送られて広告が取り出
され、取り出された広告が、広告プレースホルダエリア
内にレンダリングされる。現在時刻が内部から取り出さ
れ、ノードが現在同調しているチャネルも取り出され
る。次いで、照会(query)がサーバに対して発行され
て、隣接するチャネルが取り出され、サーバに対してや
はり照会が発行されて、プログラム名、日付、時刻、お
よびチャネル幅が取り出される。プログラム名、日付、
時刻、およびチャネル幅は、グリッド内に表示するため
にフォーマットされる。データを求めるこれらの要求
は、アプリケーションのプロセス部分によって処理され
る。したがって、ガイド・データ・アプリケーションの
プロセス部分は、各照会または要求を実行し、グリッド
内に表示するためにガイド・データを処理およびフォー
マットする。次に、フォーマットされたガイド・データ
はノードに返され、グリッド・プレースホルダエリアに
レンダリングされる。ユーザがガイド・データをスクロ
ールするとき、ユーザがスクロールしているチャネルに
ついてのデータを取り出すために、追加の要求または照
会がサーバに対して行われる。このようにして、アプリ
ケーションはサーバとノードにわたって分散する。
【0049】中央サーバの観点からは、サーバとノード
にわたってアプリケーションを分散させることは、サー
バがノード・アプリケーションからの要求を受け取った
ときに開始する。サーバがノードの要求するノード・ア
プリケーションを有している場合、サーバはノード・ア
プリケーションを返し、ノードはノード・アプリケーシ
ョンをロードする。サーバがノードの要求するノード・
アプリケーションを有さない場合、サーバは、適切なノ
ード・アプリケーションを得るためにインターネットに
アクセスすることができる。
【0050】機能アプリケーションがノード上で選択さ
れたとき、サーバは、機能アプリケーションを求める要
求を受け取る。サーバは、機能アプリケーションのユー
ザ・インターフェース部分を提供することによってノー
ドに応答し、ノード・アプリケーションは、ユーザ・イ
ンターフェース部分をノード上にロードする。その間
に、機能アプリケーションのプロセス部分がサーバ上に
ロードされる。別法として、サービス部分をサーバまた
はノード上にロードすることもでき、あるいはサーバま
たはノード上に既存であってもよい。
【0051】サーバとノード間でのアプリケーションの
分散は、通信がプロセス部分またはサービス部分と、ユ
ーザ・インターフェース部分の間で行われることを示
す。概して、ユーザ・インターフェース部分は、データ
または他のコンテンツを求める要求を行うことになる。
プロセス部分またはサービス部分はその要求を受け取
り、その要求を処理して結果を生成し、その結果がノー
ドに返され、ユーザ・インターフェース部分によって提
示および/または処理される。プロセス部分またはサー
ビス部分は、ユーザ・インターフェース部分の要求に応
答して、データベースへのアクセス、インターネットか
らのコンテンツの取り出し、データのフォーマット、フ
ァイルの保存、ファイルのオープン、ビデオ・ストリー
ムの記録、プリファレンスの設定などを行う。例えば、
アプリケーションのユーザ・インターフェース部分がガ
イド・データを要求する場合、要求を受け取るプロセス
部分またはサービス部分は、ガイド・データを格納する
データベースにアクセスし、ガイド・データを取り出
し、ガイド・データをフォーマットした後、その要求の
結果をユーザ・インターフェース部分に返す。
【0052】各アプリケーションについてプロセス部分
およびユーザ・インターフェース部分を提供し、または
アプリケーションのユーザ・インターフェース部分が使
用する1つまたは複数のサービス部分を提供することに
より、アプリケーション・ナビゲーション・アプリケー
ション、プリファレンス・アプリケーション、オーディ
オ/ビデオ・プレーヤ、デジタル・ビデオ・レコーダ、
メディア・ジュークボックス、ウェブ・ブラウジング・
アプリケーション、Eメール・アプリケーション、およ
びインスタント・メッセージング・アプリケーションな
どの他の機能アプリケーションを同様に実装することが
できる。
【0053】これらのアプリケーションは、ノードおよ
び/またはサーバで利用可能なリソースを利用するため
に、実行時に動的に分散させることができる。特定のア
プリケーションのより集中する局面(intensive aspect
s)、すなわち計算の集中する部分(computation inten
sive portions)はサーバ上に実装され、一方アプリケ
ーションのプレゼンテーション部分または他の処理局面
(processing aspects)は、ノード・アプリケーション
によってロードされるユーザ・インターフェース部分内
に実装することができる。サーバは、しばしばあたかも
ノードであるかのように使用されるので、アプリケーシ
ョンの開発が同一となるように、ノード・アプリケーシ
ョンのバージョンはサーバ上にも実装される。言い換え
れば、プログラマはサーバ用の特別なケースのアプリケ
ーションを開発する必要がなく、ユーザは、あたかもノ
ード上でアプリケーションを実行しているかのように、
サーバからアプリケーションを実行することができる。
【0054】本発明は、その精神または本質的な特徴か
ら逸脱することなく、他の特定の形態で実施することが
できる。記載の実施形態は、すべての態様において、限
定的なものではなく、単なる例とみなされるべきであ
る。したがって本発明の範囲は、上記の説明によってで
はなく、特許請求の範囲によって示される。特許請求の
範囲の均等の意味および範囲内にあるすべての変更は、
特許請求の範囲内に包含されるべきである。
【図面の簡単な説明】
【図1】本発明に適した動作環境を提供する例示的シス
テムを示す図である。
【図2】複数のコンテンツ・ソースから受け取るコンテ
ンツをホーム・ネットワーク内の複数ノードに配布する
サーバを有する例示的ホーム・ネットワークを示す図で
ある。
【図3】ノード・アプリケーションの層状構造(tiered
structure)を示すブロック図である。
【図4A】コンテンツを配布するのに使用する分散アプ
リケーションの開発および実装を示すブロック図であ
る。
【図4B】ユーザ・インターフェース部分が適宜ノード
またはサーバのどちらかにサービス部分を作成する、分
散アプリケーションの開発および実装の別の例を示すブ
ロック図である。
【符号の説明】
20 従来型コンピュータ 21 処理装置 22 システム・メモリ 23 システム・バス 24 読取り専用メモリ 25 ランダム・アクセス・メモリ 26 基本入出力システム 27 磁気ハード・ディスク・ドライブ 29 取外し可能磁気ディスク 28 磁気ディスク・ドライブ 30 光ディスク・ドライブ 31 取外し可能光ディスク 32 ハード・ディスク・ドライブ・インターフェー
ス 33 磁気ディスク・ドライブ・インターフェース 34 光ドライブ・インターフェース 35 オペレーティング・システム 36 1つまたは複数のアプリケーション・プログラ
ム 36a、36b アプリケーション・プログラム 37 他のプログラム・モジュール 38 プログラムデータ 39 磁気ハード・ディスク 40 キーボード 42 ポインティング・デバイス 46 シリアル・ポート・インターフェース 47 モニタ 48 ビデオ・アダプタ 49a、49b リモート・コンピュータ 50a、50b メモリ記憶装置 51 ローカルエリア・ネットワーク 52 ワイドエリア・ネットワーク 53 ネットワーク・インターフェースまたはアダプ
タ 51 ローカル・ネットワーク 54 モデム 200 ネットワーク 201、400 サーバ 202 記憶装置 206 サテライト・システム 208 インターネット 210 ケーブル・システム 212、218、224、408 ノード 216 テレビジョン、ディスプレイ装置 222 スピーカ 228 装置 300、412 ノード・アプリケーション 302 プレゼンテーション・エンジン 304 互換層 306 動的リソース割振りモジュール 308 実行エンジン 404 プロセス部分 406 アプリケーション 410 ユーザ・インターフェース部分 414 関数コールまたはプロシージャ・コール 420、421、422 サービス部分
───────────────────────────────────────────────────── フロントページの続き (71)出願人 502051357 1065 La Avenida Avenu e, Mountain View, C alifornia 94043 U.S.A. (72)発明者 タンテク セリク アメリカ合衆国 94117 カリフォルニア 州 サンフランシスコ デルマー ストリ ート 40 (72)発明者 スティーブン ジョン ファルケンバーグ アメリカ合衆国 94022 カリフォルニア 州 ロスアルトス テンプルバー ウェイ 661 Fターム(参考) 5B076 BA04

Claims (51)

    【特許請求の範囲】
  1. 【請求項1】 中央サーバに接続された1つまたは複数
    のノードを含み、前記中央サーバは放送ソース(broadc
    ast source)からオーディオ・コンテンツおよびビデオ
    ・コンテンツを含むコンテンツを受け取り、前記コンテ
    ンツは機能アプリケーションによって前記1つまたは複
    数のノードに送達されるシステムにおいて、ノードと前
    記中央サーバにわたって機能アプリケーションを動的に
    分散させる方法であって、 前記ノードでノード・アプリケーションをロードするス
    テップと、 ユーザ・インターフェース部分およびプロセス部分を備
    える前記機能アプリケーションを、前記ノードと前記中
    央サーバにわたって分散させるために選択するステップ
    と、 前記機能アプリケーションのユーザ・インターフェース
    部分であって、前記中央サーバ上にロードされる前記機
    能アプリケーションのプロセス部分と通信するユーザ・
    インターフェース部分を、前記ノードで前記ノード・ア
    プリケーションによりロードするステップと、 前記ユーザ・インターフェース部分により、前記プロセ
    ス部分に対してデータを求める要求を行うステップと、 前記プロセス部分から、処理したデータを受け取るステ
    ップと、 前記処理したデータを前記ノードで提示するステップと
    を備えることを特徴とする方法。
  2. 【請求項2】 追加の機能アプリケーションの、追加の
    ユーザ・インターフェース部分をロードし、前記ノード
    上にロードされる前記機能アプリケーションの前記ユー
    ザ・インターフェース部分の複数間で前記ノードのリソ
    ースを割り振るノード・アプリケーションをさらに備え
    ることを特徴とする請求項1に記載の方法。
  3. 【請求項3】 前記機能アプリケーションを選択するス
    テップは、ユーザ入力を受け取るステップを備えること
    を特徴とする請求項1に記載の方法。
  4. 【請求項4】 ノード・アプリケーションをロードする
    ステップは、 前記ノードで予備(preliminary)ユーザ・インターフ
    ェースを表示するステップと、 前記中央サーバに現在時刻および現在日付を要求するス
    テップと、 前記ノードに対してユーザ独自のプリファレンスを要求
    するステップと、 初期ユーザ・インターフェースを要求するステップと、 前記機能アプリケーションが前記初期ユーザ・インター
    フェースから立ち上げられることになるステップであっ
    て、前記ノードで前記初期ユーザ・インターフェースを
    表示するステップとをさらに備えることを特徴とする請
    求項1に記載の方法。
  5. 【請求項5】 前記ユーザ・インターフェース部分によ
    り、前記プロセス部分に対してデータを求める要求を行
    うステップは、プロトコルを使用してリモート・プロシ
    ージャ・コールを行うステップをさらに備えることを特
    徴とする請求項1に記載の方法。
  6. 【請求項6】 前記プロトコルは、COM、DCOM、
    およびSOAPのうちの1つであることを特徴とする請
    求項5に記載の方法。
  7. 【請求項7】 前記処理したデータを前記ノードで提示
    するステップは、前記ノード・アプリケーションによっ
    て与えられる規格(standards)を使用してユーザ・イ
    ンターフェースを構築するステップをさらに備えること
    を特徴とする請求項1に記載の方法。
  8. 【請求項8】 ユーザ・インターフェースを構築するス
    テップは、 前記ユーザ・インターフェースのXHTML表現(repr
    esentation)を作成するステップと、 前記XHTML内に1つまたは複数のプレースホルダエ
    リアを生成するステップと、 前記ユーザ・インターフェースのプレゼンテーションお
    よびレイアウトを記述するステップと、 振る舞い(behavior)を使用して動的コンテンツの作成
    を制御するステップとをさらに備えることを特徴とする
    請求項7に記載の方法。
  9. 【請求項9】 中央サーバに接続された1つまたは複数
    のノードを含み、前記中央サーバは放送ソース(broadc
    ast source)からオーディオ・コンテンツおよびビデオ
    ・コンテンツを含むコンテンツを受け取り、前記コンテ
    ンツは機能アプリケーションによって前記1つまたは複
    数のノードに送達されるシステムにおいて、ノードと前
    記中央サーバにわたって機能アプリケーションを動的に
    分散させる方法を実装するコンピュータ・プログラム製
    品であって、 前記ノードでノード・アプリケーションをロードするス
    テップと、 ユーザ・インターフェース部分およびプロセス部分を備
    える前記機能アプリケーションを、前記ノードと前記中
    央サーバにわたって分散させるために選択するステップ
    と、 前記ノード・アプリケーションにより、前記ノードで前
    記機能アプリケーションのユーザ・インターフェース部
    分であって、前記中央サーバ上にロードされる前記機能
    アプリケーションのプロセス部分と通信するユーザ・イ
    ンターフェース部分を、前記ノードで前記ノード・アプ
    リケーションによりロードするステップと、 前記ユーザ・インターフェース部分により、前記プロセ
    ス部分に対してデータを求める要求を行うステップと、 前記プロセス部分から、処理したデータを受け取るステ
    ップと、 前記処理したデータを前記ノードで提示するステップと
    を備える方法を実行するコンピュータ実行可能命令を有
    するコンピュータ可読媒体を備えることを特徴とするコ
    ンピュータ・プログラム製品。
  10. 【請求項10】 追加の機能アプリケーションの、追加
    のユーザ・インターフェース部分をロードし、 前記ノード上にロードされる前記機能アプリケーション
    の前記ユーザ・インターフェース部分の複数間で前記ノ
    ードのリソースを割り振るノード・アプリケーションを
    さらに備えることを特徴とする請求項9に記載のコンピ
    ュータ・プログラム製品。
  11. 【請求項11】 前記機能アプリケーションを選択する
    ステップは、ユーザ入力を受け取るステップを備えるこ
    とを特徴とする請求項9に記載のコンピュータ・プログ
    ラム製品。
  12. 【請求項12】 ノード・アプリケーションをロードす
    るステップは、 前記ノードで予備(preliminary)ユーザ・インターフ
    ェースを表示するステップと、 前記中央サーバに現在時刻および現在日付を要求するス
    テップと、 前記ノードに対してユーザ独自のプリファレンスを要求
    するステップと、 初期ユーザ・インターフェースを要求するステップと、 前記機能アプリケーションが前記初期ユーザ・インター
    フェースから立ち上がるステップであって、前記ノード
    で前記初期ユーザ・インターフェースを表示するステッ
    プとをさらに備えることを特徴とする請求項9に記載の
    コンピュータ・プログラム製品。
  13. 【請求項13】 前記ユーザ・インターフェース部分に
    より、前記プロセス部分に対してデータを求める要求を
    行うステップは、プロトコルを使用してリモート・プロ
    シージャ・コールを行うステップをさらに備えることを
    特徴とする請求項9に記載のコンピュータ・プログラム
    製品。
  14. 【請求項14】 前記プロトコルは、COM、DCO
    M、およびSOAPのうちの1つであることを特徴とす
    る請求項13に記載のコンピュータ・プログラム製品。
  15. 【請求項15】 前記処理したデータを前記ノードで提
    示するステップは、前記ノード・アプリケーションによ
    って与えられる規格を使用してユーザ・インターフェー
    スを構築するステップをさらに備えることを特徴とする
    請求項9に記載のコンピュータ・プログラム製品。
  16. 【請求項16】 ユーザ・インターフェースを構築する
    ステップは、 前記ユーザ・インターフェースのXHTML表現(repr
    esentation)を作成するステップと、 前記XHTML内に1つまたは複数のプレースホルダエ
    リアを生成するステップと、 前記ユーザ・インターフェースのプレゼンテーションお
    よびレイアウトを記述するステップと、 振る舞い(behavior)を使用して動的コンテンツの作成
    を制御するステップとをさらに備えることを特徴とする
    請求項15に記載のコンピュータ・プログラム製品。
  17. 【請求項17】 中央サーバに接続された1つまたは複
    数のノードを含み、前記中央サーバは放送ソース(broa
    dcast source)からオーディオ・コンテンツおよびビデ
    オ・コンテンツを含むコンテンツを受け取り、前記コン
    テンツは機能アプリケーションによって前記1つまたは
    複数のノードに送達されるシステムにおいて、ノードと
    前記中央サーバにわたって機能アプリケーションを動的
    に分散させる方法であって、 ノード・アプリケーションを求める要求を前記ノードか
    ら受け取るステップと、 前記ノード用の前記ノード・アプリケーションが前記中
    央サーバ上に格納されていない場合、前記ノード・アプ
    リケーションがネットワークを介してリモート・サーバ
    から取り出されることになるステップであって、前記ノ
    ード・アプリケーションを前記ノードに送るステップ
    と、 前記機能アプリケーションを求める要求を受け取るステ
    ップと、 前記機能アプリケーションのプロセス部分が、前記中央
    サーバ上で実行されることになるステップで、前記機能
    アプリケーションのユーザ・インターフェース部分を前
    記ノードに送達するステップと、 前記中央サーバのリソースを利用して各要求を処理す
    る、前記機能アプリケーションの前記プロセス部分によ
    って、前記ユーザ・インターフェース部分からの各要求
    を処理するステップと、 前記ユーザ・インターフェース部分が、結果を前記ユー
    ザに提示することになるステップであって、前記ユーザ
    ・インターフェース部分に各要求の前記結果を提供する
    ステップとを備えることを特徴とする方法。
  18. 【請求項18】 前記ノード・アプリケーションを送る
    ステップは、初期ユーザ・インターフェースを前記ノー
    ドに送るステップをさらに備えることを特徴とする請求
    項17に記載の方法。
  19. 【請求項19】 前記ユーザ・インターフェース部分か
    らの各要求を処理するステップは、規格(standard)を
    使用して各要求の前記結果をフォーマットするステップ
    をさらに備えることを特徴とする請求項17に記載の方
    法。
  20. 【請求項20】 前記ユーザ・インターフェース部分に
    各要求の結果を提供するステップは、プロトコルを使用
    して前記結果を送達するステップをさらに備えることを
    特徴とする請求項17に記載の方法。
  21. 【請求項21】 前記プロトコルはリモート・プロシー
    ジャ・コールであることを特徴とする請求項20に記載
    の方法。
  22. 【請求項22】 前記ユーザ・インターフェース部分か
    らの各要求を処理するステップは、前記中央サーバまた
    はリモート・サーバ上に格納されたコンテンツにアクセ
    スするステップをさらに備えることを特徴とする請求項
    17に記載の方法。
  23. 【請求項23】 コンテンツを記録するステップをさら
    に含み、前記コンテンツは、サテライト・システムまた
    はケーブル・システムを介して受信されるテレビジョン
    ・プログラムを備えることを特徴とする請求項17に記
    載の方法。
  24. 【請求項24】 ユーザが前記中央サーバから前記機能
    アプリケーションを選択することができるように、前記
    中央サーバ上に前記ノード・アプリケーションを実装す
    るステップをさらに備えることを特徴とする請求項17
    に記載の方法。
  25. 【請求項25】 中央サーバに接続された1つまたは複
    数のノードを含み、前記中央サーバは放送ソース(broa
    dcast source)からオーディオ・コンテンツおよびビデ
    オ・コンテンツを含むコンテンツを受け取り、前記コン
    テンツは機能アプリケーションによって前記1つまたは
    複数のノードに送達されるシステムにおいて、ノードと
    前記中央サーバにわたって機能アプリケーションを動的
    に分散させる方法を実装するコンピュータ・プログラム
    製品であって、ノード・アプリケーションを求める要求
    を前記ノードから受け取るステップと、 前記ノード用の前記ノード・アプリケーションが前記中
    央サーバ上に格納されていない場合、前記ノード・アプ
    リケーションがネットワークを介してリモート・サーバ
    から取り出されるステップであって、前記ノード・アプ
    リケーションを前記ノードに送るステップと、 前記機能アプリケーションを求める要求を受け取るステ
    ップと、 前記機能アプリケーションのプロセス部分が、前記中央
    サーバ上で実行されることになるステップで、前記機能
    アプリケーションのユーザ・インターフェース部分を前
    記ノードに送達するステップと、 前記中央サーバのリソースを利用して各要求を処理す
    る、前記機能アプリケーションの前記プロセス部分によ
    って、前記ユーザ・インターフェース部分からの各要求
    を処理するステップと、 前記ユーザ・インターフェース部分が、結果を前記ユー
    ザに提示することになるステップで、前記ユーザ・イン
    ターフェース部分に各要求の前記結果を提供するステッ
    プとを備える方法を実行するコンピュータ実行可能命令
    を有するコンピュータ可読媒体を備えることを特徴とす
    るコンピュータ・プログラム製品。
  26. 【請求項26】 前記ノード・アプリケーションを送る
    ステップは、初期ユーザ・インターフェースを前記ノー
    ドに送るステップをさらに備えることを特徴とする請求
    項25に記載のコンピュータ・プログラム製品。
  27. 【請求項27】 前記ユーザ・インターフェース部分か
    らの各要求を処理するステップは、規格(standard)を
    使用して各要求の前記結果をフォーマットするステップ
    をさらに備えることを特徴とする請求項25に記載のコ
    ンピュータ・プログラム製品。
  28. 【請求項28】 前記ユーザ・インターフェース部分に
    各要求の結果を提供するステップは、プロトコルを使用
    して前記結果を送達するステップをさらに備えることを
    特徴とする請求項25に記載のコンピュータ・プログラ
    ム製品。
  29. 【請求項29】 前記プロトコルはリモート・プロシー
    ジャ・コールであることを特徴とする請求項28に記載
    のコンピュータ・プログラム製品。
  30. 【請求項30】 前記ユーザ・インターフェース部分か
    らの各要求を処理するステップは、前記中央サーバまた
    はリモート・サーバ上に格納されたコンテンツにアクセ
    スするステップをさらに備えることを特徴とする請求項
    25に記載のコンピュータ・プログラム製品。
  31. 【請求項31】 コンテンツを記録するステップをさら
    に備え、前記コンテンツは、サテライト・システムまた
    はケーブル・システムを介して受信されるテレビジョン
    ・プログラムを備えることを特徴とする請求項25に記
    載のコンピュータ・プログラム製品。
  32. 【請求項32】 ユーザが前記中央サーバから前記機能
    アプリケーションを選択することができるように、前記
    中央サーバ上に前記ノード・アプリケーションを実装す
    るステップをさらに備えることを特徴とする請求項25
    に記載のコンピュータ・プログラム製品。
  33. 【請求項33】 中央サーバに接続された1つまたは複
    数のノードを含み、前記中央サーバは放送ソース(broa
    dcast source)からオーディオ・コンテンツおよびビデ
    オ・コンテンツを含むコンテンツを受け取り、前記コン
    テンツは機能アプリケーションによって前記1つまたは
    複数のノードに送達されるシステムにおいて、前記中央
    サーバとノードにわたって前記機能アプリケーションを
    分散させるノード・アプリケーションであって、 適宜各機能アプリケーションがユーザ・インターフェー
    スをレンダリングすることができるように、第1の規格
    に対するサポートを提供するプレゼンテーション・エン
    ジンと、 適宜各機能アプリケーションが前記ノード上で実行でき
    るように、第2の規格に対するサポートを提供する実行
    エンジンと、 複数のオペレーティング・システムおよび複数のプロセ
    ッサ・アーキテクチャにわたって、前記ノード・アプリ
    ケーションおよび前記機能アプリケーションがポータブ
    ルであることを許容する互換層と、 前記ノードのリソースを、前記機能アプリケーションの
    1つまたは複数のユーザ・インターフェース部分に動的
    に割り振る割り振りモジュールとを備えることを特徴と
    するノード・アプリケーション。
  34. 【請求項34】 前記第1の規格は、HTML、XHT
    ML、CSS、PNG、MNG、JPEG、MPEG、
    XML、SOAP、HTTP、およびTCP/IPを備
    え、 前記第2の規格は、COM、DCOM、およびECMA
    Scriptを備えることを特徴とする請求項33に記
    載のノード・アプリケーション。
  35. 【請求項35】 前記ノード・アプリケーションは、前
    記ノード上のアプリケーションをロードおよびアンロー
    ドするローディング・モジュールをさらに備えることを
    特徴とする請求項33に記載のノード・アプリケーショ
    ン。
  36. 【請求項36】 前記ローディング・モジュールは、ア
    プリケーションのユーザ・インターフェース部分をロー
    ドおよびアンロードすることを特徴とする請求項35に
    記載のノード・アプリケーション。
  37. 【請求項37】 前記ローディング・モジュールは、プ
    ロトコルを使用して、前記中央サーバ上にロードされた
    前記機能アプリケーションのプロセス部分に対して要求
    を行うことを特徴とする請求項35に記載のノード・ア
    プリケーション。
  38. 【請求項38】 前記要求はリモート・プロシージャ・
    コールであり、前記プロトコルは、COM、SOAP、
    およびDCOMのうちの1つであることを特徴とする請
    求項37に記載のノード・アプリケーション。
  39. 【請求項39】 中央サーバに接続された1つまたは複
    数のノードを含み、前記中央サーバは放送ソース(broa
    dcast source)からオーディオ・コンテンツおよびビデ
    オ・コンテンツを含むコンテンツを受け取り、前記コン
    テンツは機能アプリケーションによって前記1つまたは
    複数のノードに送達されるシステムにおいて、ノードと
    前記中央サーバにわたって機能アプリケーションを動的
    に分散させる方法であって、 前記ノードでノード・アプリケーションをロードするス
    テップと、 ユーザ・インターフェース部分と、データの必要時に前
    記ユーザ・インターフェース部分により前記ノードまた
    は前記中央サーバのどちらかに作成される1つまたは複
    数のサービス部分とを有する前記機能アプリケーション
    を、前記ノードと前記中央サーバにわたって分散させる
    ために選択するステップと、 前記ノード・アプリケーションにより、前記ノードで前
    記機能アプリケーションのユーザ・インターフェース部
    分であって、前記1つまたは複数のサービス部分と通信
    する前記ユーザ・インターフェース部分をロードするス
    テップと、 前記ユーザ・インターフェース部分により、特定のサー
    ビス部分に対してデータを求める要求を行うステップ
    と、 前記特定のサービス部分から、処理したデータを受け取
    るステップと、 前記処理したデータを前記ノードで提示するステップと
    を備えることを特徴とする方法。
  40. 【請求項40】 追加の機能アプリケーションの、追加
    のユーザ・インターフェース部分をロードし、前記ノー
    ド上にロードされる前記機能アプリケーションの前記ユ
    ーザ・インターフェース部分の複数間で前記ノードのリ
    ソースを割り振るノード・アプリケーションをさらに備
    えることを特徴とする請求項39に記載の方法。
  41. 【請求項41】 前記機能アプリケーションを選択する
    ステップは、ユーザ入力を受け取るステップをさらに備
    えることを特徴とする請求項39に記載の方法。
  42. 【請求項42】 ノード・アプリケーションをロードす
    るステップは、 前記ノードで予備(preliminary)ユーザ・インターフ
    ェースを表示するステップと、 前記中央サーバに現在時刻および現在日付を要求するス
    テップと、 前記ノードに対してユーザ独自のプリファレンスを要求
    するステップと、 初期ユーザ・インターフェースを要求するステップと、 前記機能アプリケーションが、前記初期ユーザ・インタ
    ーフェースから立ち上げられることになるステップであ
    って、前記ノードで前記初期ユーザ・インターフェース
    を表示するステップステップとをさらに備えることを特
    徴とする請求項39に記載の方法。
  43. 【請求項43】 前記ユーザ・インターフェース部分に
    より、前記特定のサービス部分に対してデータを求める
    要求を行うステップは、プロトコルを使用してリモート
    ・プロシージャ・コールを行うステップをさらに備える
    ことを特徴とする請求項39に記載の方法。
  44. 【請求項44】 前記プロトコルは、COM、DCO
    M、およびSOAPのうちの1つであることを特徴とす
    る請求項43に記載の方法。
  45. 【請求項45】 前記処理したデータを前記ノードで提
    示するステップは、前記ノード・アプリケーションによ
    って与えられる規格を使用してユーザ・インターフェー
    スを構築するステップをさらに含むことを特徴とする請
    求項39に記載の方法。
  46. 【請求項46】 ユーザ・インターフェースを構築する
    ステップは、 前記ユーザ・インターフェースのXHTML表現(repr
    esentation)を作成するステップと、 前記XHTML内に1つまたは複数のプレースホルダエ
    リアを生成するステップと、 前記ユーザ・インターフェースのプレゼンテーションお
    よびレイアウトを記述するステップと、 振る舞い(behavior)を使用して動的コンテンツの作成
    を制御するステップとをさらに備えることを特徴とする
    請求項45に記載の方法。
  47. 【請求項47】 中央サーバに接続された1つまたは複
    数のノードを含み、前記中央サーバは放送ソース(broa
    dcast source)からオーディオ・コンテンツおよびビデ
    オ・コンテンツを含むコンテンツを受け取り、前記コン
    テンツは機能アプリケーションによって前記1つまたは
    複数のノードに送達されるシステムにおいて、ノードと
    前記中央サーバにわたって機能アプリケーションを動的
    に分散させる方法であって、 ノード・アプリケーションを求める要求を前記ノードか
    ら受け取るステップと、 前記ノード用の前記ノード・アプリケーションが前記中
    央サーバ上に格納されていない場合、前記ノード・アプ
    リケーションがネットワークを介してリモート・サーバ
    から取り出されることになるステップであって、前記ノ
    ード・アプリケーションを前記ノードに送るステップ
    と、 前記機能アプリケーションを求める要求を受け取るステ
    ップと、 前記機能アプリケーションのプロセス部分が、前記中央
    サーバ上で実行されることになるステップで、前記機能
    アプリケーションのユーザ・インターフェース部分を前
    記ノードに送達するステップと、 前記中央サーバ上または前記ノード上のどちらかの前記
    機能アプリケーションの前記ユーザ・インターフェース
    部分により作成されるサービス部分で、前記中央サーバ
    または前記ノードのリソースを利用して各要求を処理す
    る前記サービス部分を使用して、前記ユーザ・インター
    フェース部分からの各要求を処理するステップと、 前記ユーザ・インターフェース部分が、前記結果を前記
    ユーザに提示することになるステップであって、前記ユ
    ーザ・インターフェース部分に各要求の結果を提供する
    ステップとを備えることを特徴とする方法。
  48. 【請求項48】 前記ノード・アプリケーションを送る
    ステップは、初期ユーザ・インターフェースを前記ノー
    ドに送るステップをさらに備えることを特徴とする請求
    項47に記載の方法。
  49. 【請求項49】 前記ユーザ・インターフェース部分か
    らの各要求を処理するステップは、前記中央サーバまた
    はリモート・サーバ上に格納されたコンテンツにアクセ
    スするステップをさらに備えることを特徴とする請求項
    47に記載の方法。
  50. 【請求項50】 コンテンツを記録するステップをさら
    に備え、前記コンテンツは、放送ソースから受信される
    テレビジョン・プログラムを含むことを特徴とする請求
    項47に記載の方法。
  51. 【請求項51】 ユーザが前記中央サーバから前記機能
    アプリケーションを選択および実行することができるよ
    うに、前記中央サーバ上に前記ノード・アプリケーショ
    ンを実装するステップをさらに備えることを特徴とする
    請求項47に記載の方法。
JP2002361361A 2001-12-20 2002-12-12 分散アプリケーションのスケーリングおよび配信 Expired - Lifetime JP4694091B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/029,310 US7257638B2 (en) 2001-12-20 2001-12-20 Distributing network applications
US10/029,310 2001-12-20

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2008010990A Division JP4309458B2 (ja) 2001-12-20 2008-01-21 中央サーバによって、当該中央サーバに接続されたノードの機能アプリケーションをサポートする方法およびコンピュータ読み取り可能な記録媒体

Publications (2)

Publication Number Publication Date
JP2003323310A true JP2003323310A (ja) 2003-11-14
JP4694091B2 JP4694091B2 (ja) 2011-06-01

Family

ID=21848367

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2002361361A Expired - Lifetime JP4694091B2 (ja) 2001-12-20 2002-12-12 分散アプリケーションのスケーリングおよび配信
JP2008010990A Expired - Lifetime JP4309458B2 (ja) 2001-12-20 2008-01-21 中央サーバによって、当該中央サーバに接続されたノードの機能アプリケーションをサポートする方法およびコンピュータ読み取り可能な記録媒体

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2008010990A Expired - Lifetime JP4309458B2 (ja) 2001-12-20 2008-01-21 中央サーバによって、当該中央サーバに接続されたノードの機能アプリケーションをサポートする方法およびコンピュータ読み取り可能な記録媒体

Country Status (3)

Country Link
US (3) US7257638B2 (ja)
EP (1) EP1322084B1 (ja)
JP (2) JP4694091B2 (ja)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU4676800A (en) * 1999-04-26 2000-11-10 Dodots, Inc. Apparatus and method for delivering internet content
US7899915B2 (en) 2002-05-10 2011-03-01 Richard Reisman Method and apparatus for browsing using multiple coordinated device sets
US7954127B2 (en) 2002-09-25 2011-05-31 The Directv Group, Inc. Direct broadcast signal distribution methods
CN100481767C (zh) * 2003-08-07 2009-04-22 三星电子株式会社 音频/视频装置及其控制设备和方法
US20060212906A1 (en) * 2005-03-18 2006-09-21 Cantalini James C System and method for digital media navigation and recording
US7900230B2 (en) 2005-04-01 2011-03-01 The Directv Group, Inc. Intelligent two-way switching network
US8024759B2 (en) 2005-04-01 2011-09-20 The Directv Group, Inc. Backwards-compatible frequency translation module for satellite video delivery
US7987486B2 (en) 2005-04-01 2011-07-26 The Directv Group, Inc. System architecture for control and signal distribution on coaxial cable
US7958531B2 (en) 2005-04-01 2011-06-07 The Directv Group, Inc. Automatic level control for incoming signals of different signal strengths
US8621525B2 (en) 2005-04-01 2013-12-31 The Directv Group, Inc. Signal injection via power supply
US8549565B2 (en) * 2005-04-01 2013-10-01 The Directv Group, Inc. Power balancing signal combiner
US7945932B2 (en) 2005-04-01 2011-05-17 The Directv Group, Inc. Narrow bandwidth signal delivery system
US7950038B2 (en) 2005-04-01 2011-05-24 The Directv Group, Inc. Transponder tuning and mapping
US20060277272A1 (en) * 2005-05-31 2006-12-07 Gist Communications, Inc. Protocol for enabling digital media navigation, selection and mobile remote control of DVR devices
US20070028262A1 (en) * 2005-07-29 2007-02-01 Zermatt Systems, Inc. Virtual discovery of content available to a device
US8789115B2 (en) 2005-09-02 2014-07-22 The Directv Group, Inc. Frequency translation module discovery and configuration
US7937732B2 (en) 2005-09-02 2011-05-03 The Directv Group, Inc. Network fraud prevention via registration and verification
US7991348B2 (en) 2005-10-12 2011-08-02 The Directv Group, Inc. Triple band combining approach to satellite signal distribution
US8019275B2 (en) 2005-10-12 2011-09-13 The Directv Group, Inc. Band upconverter approach to KA/KU signal distribution
US7783967B1 (en) * 2005-10-28 2010-08-24 Aol Inc. Packaging web content for reuse
US20070233844A1 (en) * 2006-03-29 2007-10-04 Murata Kikai Kabushiki Kaisha Relay device and communication system
EP2033442A2 (en) * 2006-06-09 2009-03-11 The DIRECTV Group, Inc. Presentation modes for various format bit streams
WO2007149414A2 (en) * 2006-06-19 2007-12-27 The Directv Group, Inc. Dedicated tuner for network administration functions
JP4978109B2 (ja) * 2006-08-10 2012-07-18 富士通株式会社 ネットワークシステム及び情報処理方法
US20080140863A1 (en) * 2006-10-05 2008-06-12 Holt John M Multiple communication networks for multiple computers
US8719875B2 (en) 2006-11-06 2014-05-06 The Directv Group, Inc. Satellite television IP bitstream generator receiving unit
US20080155124A1 (en) * 2006-12-20 2008-06-26 Matthew Charles Compton Apparatus, system, and method for remote multi-user kvm switching
US9432443B1 (en) * 2007-01-31 2016-08-30 Hewlett Packard Enterprise Development Lp Multi-variate computer resource allocation
US8209674B2 (en) * 2007-02-12 2012-06-26 Microsoft Corporation Tier splitting support for distributed execution environments
EP1990974A3 (en) * 2007-05-02 2010-03-24 Murata Machinery, Ltd. Relay server and relay communication system
US8712318B2 (en) 2007-05-29 2014-04-29 The Directv Group, Inc. Integrated multi-sat LNB and frequency translation module
US8238813B1 (en) 2007-08-20 2012-08-07 The Directv Group, Inc. Computationally efficient design for broadcast satellite single wire and/or direct demod interface
US8087015B2 (en) * 2007-10-26 2011-12-27 Microsoft Corporation Assignment of application models to deployment targets
US9942618B2 (en) 2007-10-31 2018-04-10 The Directv Group, Inc. SMATV headend using IP transport stream input and method for operating the same
WO2010080823A1 (en) 2009-01-06 2010-07-15 The Directv Group, Inc. Frequency drift estimation for low cost outdoor unit
EP2539827A4 (en) * 2010-02-26 2015-01-07 Rovi Tech Corp DYNAMIC CONFIGURABLE BUNDLES OF DEVICES
US10908794B2 (en) * 2010-08-16 2021-02-02 Iheartmedia Management Services, Inc. Automated scheduling of multimedia content avoiding adjacency conflicts
KR101577878B1 (ko) 2011-02-03 2015-12-15 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 분산 환경들에서 신뢰도의 개선
MY178653A (en) 2011-07-04 2020-10-20 Mimos Berhad System and method for distributing applications in wide area network
US10754699B2 (en) * 2012-08-05 2020-08-25 International Business Machines Corporation Remote provisioning of virtual appliances for access to virtualized storage
CN103067758A (zh) * 2012-12-17 2013-04-24 鸿富锦精密工业(深圳)有限公司 一种广告服务器与播放终端及广告推送系统与方法
US9565075B2 (en) * 2013-10-07 2017-02-07 Empire Technology Development Llc Distributed user interfaces as a service
CN105893154B (zh) * 2016-03-31 2019-07-26 联想(北京)有限公司 一种流量分配方法及服务器
KR102464616B1 (ko) * 2016-10-05 2022-11-09 파르텍 클러스터 컴피턴스 센터 게엠베하 고성능 컴퓨팅 시스템 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003535402A (ja) * 2000-05-31 2003-11-25 インテル コーポレイション 消費者用機器を遠隔的に管理及び制御する方法及びシステム

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US749091A (en) * 1904-01-05 Wood-carbonizer
US5666293A (en) * 1994-05-27 1997-09-09 Bell Atlantic Network Services, Inc. Downloading operating system software through a broadcast channel
US5724530A (en) * 1994-07-25 1998-03-03 Apple Computer, Inc. Supervisory control system for networked multimedia workstations that provides remote launching of files
US5732266A (en) * 1994-09-02 1998-03-24 Compaq Computer Corporation Storage medium storing application programs and application initialization files and automatic launching of computer applications stored on the storage medium
US5937163A (en) * 1996-03-26 1999-08-10 Industrial Technology Research Institute Method and system at a host node for hierarchically organizing the links visited by a world wide web browser executing at the host node
US6061695A (en) * 1996-12-06 2000-05-09 Microsoft Corporation Operating system shell having a windowing graphical user interface with a desktop displayed as a hypertext multimedia document
US6018571A (en) * 1997-09-30 2000-01-25 Mitel Corporation System for interactive control of a computer and telephone
US20020075308A1 (en) * 1997-11-12 2002-06-20 Divelbiss Adam W. Multi-purpose interactive application execution system
US6049664A (en) * 1997-11-25 2000-04-11 Alphablox Corporation Tier-neutral development mechanism for hypertext based applications
US6029045A (en) * 1997-12-09 2000-02-22 Cogent Technology, Inc. System and method for inserting local content into programming content
US6011918A (en) * 1998-04-22 2000-01-04 International Business Machines Corporation Methods, systems and computer program products for generating client/server applications
US6259448B1 (en) * 1998-06-03 2001-07-10 International Business Machines Corporation Resource model configuration and deployment in a distributed computer network
WO2000048073A1 (en) 1999-02-09 2000-08-17 Hearme Method and apparatus for managing assets of a client side application
US20020026321A1 (en) * 1999-02-26 2002-02-28 Sadeg M. Faris Internet-based system and method for fairly and securely enabling timed-constrained competition using globally time-sychronized client subsystems and information servers having microsecond client-event resolution
US6990676B1 (en) * 1999-03-17 2006-01-24 Sony Corporation Locally stored content previews. Representative of programming content in an electronic programming guide through a graphic image accessed from the hard drive of a set top box
US6486892B1 (en) * 1999-04-07 2002-11-26 Joseph L. Stern System and method for accessing, manipulating and viewing internet and non-internet related information and for controlling networked devices
US6704798B1 (en) * 2000-02-08 2004-03-09 Hewlett-Packard Development Company, L.P. Explicit server control of transcoding representation conversion at a proxy or client location
AU2001249822A1 (en) * 2000-04-05 2001-10-23 Tranceive Technologies, Inc. Method and apparatus for profiling in a distributed application environment
US6687735B1 (en) * 2000-05-30 2004-02-03 Tranceive Technologies, Inc. Method and apparatus for balancing distributed applications
US6807559B1 (en) * 2000-04-06 2004-10-19 Attachmate Corporation System and method for applet management
US6976090B2 (en) * 2000-04-20 2005-12-13 Actona Technologies Ltd. Differentiated content and application delivery via internet
US7702995B2 (en) * 2000-04-24 2010-04-20 TVWorks, LLC. Method and system for transforming content for execution on multiple platforms
US6819343B1 (en) * 2000-05-05 2004-11-16 Microsoft Corporation Dynamic controls for use in computing applications
CA2409920C (en) * 2000-06-22 2013-05-14 Microsoft Corporation Distributed computing services platform
US7089560B1 (en) * 2000-07-24 2006-08-08 Sun Microsystems, Inc. Architecture for building web applications
US6704024B2 (en) * 2000-08-07 2004-03-09 Zframe, Inc. Visual content browsing using rasterized representations
US20010013052A1 (en) * 2000-10-25 2001-08-09 Yobie Benjamin Universal method and apparatus for disparate systems to communicate
US7076048B2 (en) * 2001-09-21 2006-07-11 Matsushita Electric Industrial Co., Ltd. Agent-based multimedia communication system that supports web telephony call model

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003535402A (ja) * 2000-05-31 2003-11-25 インテル コーポレイション 消費者用機器を遠隔的に管理及び制御する方法及びシステム

Also Published As

Publication number Publication date
JP4694091B2 (ja) 2011-06-01
US20060020695A1 (en) 2006-01-26
US7519723B2 (en) 2009-04-14
US20070214281A1 (en) 2007-09-13
JP4309458B2 (ja) 2009-08-05
US7546375B2 (en) 2009-06-09
EP1322084A2 (en) 2003-06-25
US7257638B2 (en) 2007-08-14
US20030120792A1 (en) 2003-06-26
EP1322084A3 (en) 2007-05-16
EP1322084B1 (en) 2012-09-12
JP2008159068A (ja) 2008-07-10

Similar Documents

Publication Publication Date Title
JP2003323310A (ja) 分散アプリケーションのスケーリングおよび配信
US7779405B2 (en) Run-time determination of application delivery
CN100518176C (zh) 实现有状态网络应用的会话返回
CN1201541C (zh) 仿真流的文件分区
US6732142B1 (en) Method and apparatus for audible presentation of web page content
US9332063B2 (en) Versatile application configuration for deployable computing environments
US20090199132A1 (en) Quick access to virtual applications
EP2408145A1 (en) Method and devices for the visibility of media contents available from upnp media servers and for initiating rendering such media contents via a file system on a user interface
US7836404B2 (en) Streaming internet media record and playback software program
US8219692B2 (en) Method and apparatus for storing and restoring state information of remote user interface
WO2002023360A1 (en) Independent update and assembly of web page elements
CN101410774A (zh) 在线服务切换和定制
US20110185298A1 (en) Method and apparatus for a distributable globe graphical object
JP4988746B2 (ja) ポータル環境内のドラッグ・アンド・ドロップ・コンテンツを閲覧するためのポートレット・ビューアを提供する方法、システム、及びコンピュータ・プログラム(ポータル環境内のドラッグ・アンド・ドロップ・コンテンツを閲覧するためのポートレット・ビューアの提供)
US20060230059A1 (en) Method and apparatus to select and deliver portable portlets
JP2020004379A (ja) 情報をリリースするための方法と装置、ならびに情報を処理するための方法と装置
WO2001077897A2 (en) System and method using a web catalog with dynamic multimedia data using java
De Jong et al. A vod application implemented in java
EP2575327B1 (fr) Procédé de partage d'une application web entre plusieurs terminaux informatiques reliés à un réseau de communication
CN112887798B (zh) 显示装置及应用于安卓系统的多媒体资源播放方法
KR20010018919A (ko) 데스크탑 동영상 광고방법
Bulterman Managing the Adaptive Processing of Distributed Multimedia Information

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051110

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20051114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070720

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20071022

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20071025

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080121

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080519

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20080520

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20080520

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080625

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20080718

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20100524

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100524

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110201

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110223

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140304

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4694091

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term