JP5162240B2 - リアルタイム配信ネットワークによって個別コンテンツを配信する技法 - Google Patents

リアルタイム配信ネットワークによって個別コンテンツを配信する技法 Download PDF

Info

Publication number
JP5162240B2
JP5162240B2 JP2007527921A JP2007527921A JP5162240B2 JP 5162240 B2 JP5162240 B2 JP 5162240B2 JP 2007527921 A JP2007527921 A JP 2007527921A JP 2007527921 A JP2007527921 A JP 2007527921A JP 5162240 B2 JP5162240 B2 JP 5162240B2
Authority
JP
Japan
Prior art keywords
identifier
message
client device
information
client
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.)
Active
Application number
JP2007527921A
Other languages
English (en)
Other versions
JP2008515032A (ja
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
Application filed by ショー パーシング リミティド ライアビリティ カンパニー filed Critical ショー パーシング リミティド ライアビリティ カンパニー
Publication of JP2008515032A publication Critical patent/JP2008515032A/ja
Application granted granted Critical
Publication of JP5162240B2 publication Critical patent/JP5162240B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/30Routing of multiclass traffic
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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/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
    • H04L67/1004Server selection for load balancing
    • H04L67/1014Server selection for load balancing based on the content of a request
    • 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
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • 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]

Description

本開示の実施例は概略,ネットワークを通じて情報を転送することに関連し,特にネットワークを通じてクライアントデバイスにおけるコンテンツを遠隔で更新するために,個別化した情報を転送することに関する。
ユーザはワールドワイドウェブから多くのさまざまな種類のコンテンツをダウンロードすることができる。いくつかの場合,ユーザはウェブページに対して所望するコンテンツを送信するサービスに加入することができる。コンテンツプロバイダは,どのユーザがどのコンテンツを登録したかを追跡し続ける必要があるかもしれない。またサービスプロバイダは,どのユーザがどのコンテンツを登録したかを追跡し続けることに加えて,各ユーザが登録したコンテンツをどのように送信するかを知る必要があるかもしれない。このことは,登録したユーザと,各ユーザが所望するコンテンツと,ユーザへどうやってコンテンツを配信するかと,を追跡し続けるために膨大なリソースを必要とするかもしれない。
本明細書及び付随する図面の残りの部分を参照することによって,ここに開示する実施例の性質及び利点の更なる理解が可能になるであろう。
1つの実施例において,個別コンテンツは動的コンテンツ配信ネットワークを用いて遠隔クライアントに提供することができる。最初に動的コンテンツ配信ネットワークを説明し,次にクライアントへ個別コンテンツを配信することを説明する。
動的コンテンツ配信ネットワーク
図1に,動的コンテンツ配信ネットワーク110(以降,「配信ネットワーク」と呼ぶ)を含む環境100を示す高レベルのブロック図を示す。また環境100は,クライアント114,情報プロバイダ108及び動的コンテンツプロバイダ116と通信するサーバ112も含む。典型的な環境100は何百かのサーバ112及び情報プロバイダ108と,何千(又は何百万でさえあり得る)のクライアント114と,複数の動的コンテンツプロバイダ116とを有するであろうが,図1では説明を明りょうさにするために,これらのエンティティをそれぞれ1つだけ示している。
サーバ112と,クライアント114と,情報プロバイダ108と,ダイナミックコンテンツプロバイダ116と,配信ネットワーク110とは,インターネットを構成するもののような通常の通信リンク117を介して通信することが好ましい。通信リンク117は,既知の専用又は共用の,データ回線,ケーブルテレビ回線又は電話回線,及び/又は世界移動体通信システム(GSM),符号分割多元接続(CDMA),時間分割多元接続(TDMA)などのようなプロトコルを用いる携帯電話ネットワークを介する通信のような既知の無線通信メディアである。
1つの実施例において各エンティティはそれぞれ,各エンティティがインターネット上のほかの計算機へ接続できるようにする1以上のインターネットサービスプロバイダ(ISP)(図示していない)と通信することができる。更にサーバ112と,クライアント114と,情報プロバイダ108と,動的コンテンツプロバイダ116と,配信ネットワーク110とは,それぞれ少なくとも1つの,"66.35.209.224"のようなインターネットプロトコル(IP)アドレスによって識別されることが好ましい。またIPアドレスは,"bangnetworks.com"のようなそのIPアドレスに関連付けられた1以上のドメイン名を持つことができる。本発明の代替実施例は,ここで説明したものの代わりに,又はそれに追加して,代替のアドレス体系及び/又は命名慣習を用いてもよい。例えば1以上のクライアントが携帯電話機又はほかの可搬型デバイスである実施例は,さまざまなアドレス体系に依存してもよい。
情報プロバイダ108はウェブページ又はほかのデータ表現をサーバ112に提供することが好ましい。ウェブページは,リアルタイムの動的更新可能オブジェクトとして指定された1以上の「ライブオブジェクト」を含む。各ライブオブジェクトはオブジェクト識別子,すなわちオブジェクトIDによって識別される。サーバ112は,ページ118を複数のクライアント114に提供することが好ましい。クライアント114は配信ネットワーク110に接続し,ウェブページ上のオブジェクトIDに対して更新メッセージを登録する。次に配信ネットワーク110は,どのクライアントがどのオブジェクトIDに登録されているかを示す登録情報を維持管理することが好ましい。
情報プロバイダ108及び/又は動的コンテンツプロバイダ116は,配信ネットワーク110に更新メッセージを送信する。これらのメッセージは,情報プロバイダ108又は動的コンテンツプロバイダ116がライブオブジェクトの特性値を更新したいときいつでも送信できる。各更新メッセージはライブオブジェクトを指定し,指定されたライブオブジェクトの特性値を更新するためのデータを含むことが好ましい。配信ネットワーク110は登録情報を利用して,指定されたオブジェクトにどのクライアントが登録されているかを判定する。次に配信ネットワーク110は更新メッセージを適切なクライアントへ配信する。更新メッセージを受信すると,クライアント114はライブオブジェクトの指定された特性値を更新する。
配信ネットワーク110は,オブジェクトに基づく配信によって,各オブジェクトと各クライアントとの効率的な1対多の対応付けを(そして情報の推定によって,各情報プロバイダ108又は動的コンテンツプロバイダ116と各クライアントとの多対多の対応付けも)提供する。情報プロバイダ108及び/又は動的コンテンツプロバイダ116が配信ネットワーク110に提供するメッセージは,特定の目的地に完全に基づいては,クライアント114に配信されない。より明確にはそれらは,通常のIP経路制御体系のようにクライアントのIPアドレスに従っては配信されない。代わりにメッセージは,メッセージが参照するライブオブジェクトに基づいて配信される。
配信ネットワーク110が提供する対応付け及びオブジェクトに基づく配信によって,情報プロバイダ及び動的コンテンツプロバイダがクライアント又はクライアントが見ているウェブページを追跡する必要なく,情報プロバイダ108及び動的コンテンツプロバイダ116がリアルタイムで動的に変化するクライアントのグループにおけるライブオブジェクトの特性値を更新できるようにする。次にクライアント114はオブジェクトIDについて何の事前知識も必要なく,サーバ112からページ118を受信したとき,どのIDを登録すべきかを「発見」する。
またオブジェクトに基づく配信によって,情報プロバイダ108はクライアント114がコンテンツを再要求する必要なく,また情報プロバイダ108又はサーバ112が,クライアントとコネクションを保持することなく,Webページ上のコンテンツを動的に更新できる。この方法によって,通常のクライアント側の要求駆動型の送信制御プロトコル/インターネットプロトコル(TCP/IP)によるクライアントとサーバ112との間のコネクションを用いて可能になるものにより非常に多くのクライアントが,特定の情報プロバイダ108から更新されたコンテンツを受信できる。
ここで図1に示した個々のエンティティに移ると,サーバ112は通常の計算機システムであって,ウェブサーバとして動作して,クライアント114にページ118及びほかのデータ表現を提供することが好ましい。サーバ112が提供するページ118は,1以上の情報プロバイダ108と関連付けられている。
情報プロバイダ108は,1以上のページ118,ウェブページに含まれる情報,及び/又はサーバ112が提供するほかのデータ表現を提供するエンティティである。情報プロバイダ108はインターネットに接続された通常の計算機システムを備えることが好ましい。1つの実施例においては,サーバ112は情報プロバイダ108が直接制御する。(例えばサーバは,情報プロバイダに物理的に設置されているか,及び/又は専用で情報プロバイダのウェブページだけを提供する。)この実施例においては,サーバ112と情報プロバイダ108とは同一のエンティティとして取り扱うことができる。代替実施例においては,サーバ112は複数の情報プロバイダのウェブページを提供する。
本技術においては周知のとおり,サーバ112上のページ118及びほかのコンテンツは,"service://server/path/web page"の形態をとる統一リソースロケータ(URL)によって規定される。典型的にはページ118はハイパテキスト転送プロトコル(HTTP)を介して取得されるので,したがってドメイン名"www.bangnetorks.com"を持つウェブサーバからウェブページ"b1.html"を取得するための例示URLは,"http://www.bangnetworks.com/news/b1.html"となる。
ここで用いられているとおり,「ウェブページ」はサーバ112から得られるデータブロックである。最も簡単な場合,ウェブページはハイパテキストマーク付け言語(HTML)で書かれたファイルである。またウェブページは,ほかのファイル,テキスト,画像,アプレット,ビデオ,及び/又はオーディオのような1以上のほかのデータブロックを含んでもよいし,参照してもよい。更にウェブページは,HTMLタグ及びスタイルシートのようなウェブページ及びそのコンテンツを提示するための命令を含んでもよい。また命令は拡張可能マーク付け言語(XML)で書かれていてもよく,XMLはHTMLに関連し,ウェブページ又はウェブページにいくらかの動的コンテンツを追加するダイナミックHTML(DHTML)に意味的な内容を追加する。更に命令はJAVA(登録商標),JAVASCRIPT(登録商標)及び/又はDHTMLスクリプトのような1以上のプログラムの形態をとってもよい。
またここで用いられているとおり「ウェブページ」という句は,サーバ112が提供するほかのデータ表現も指し,これらのデータ表現が通常のウェブページの特徴を含むかどうかにはかかわらない。例えばこれらのデータ表現は,アプリケーションプログラム及びウェブブラウザ120のためのデータ,若しくはクライアント114又は別の場所に常駐する表計算のデータ又は(例えばワープロの)テキストデータのような,ほかのアプリケーションプログラムのためのデータを含む。
好ましい実施例においては情報プロバイダ108が,ウェブページ及びウェブページの要素のようなクライアントにおけるオブジェクトを「ライブ」として指定することができる。ライブオブジェクトの特性値は,情報プロバイダ108又は情報プロバイダを代理するほかのエンティティが,クライアント114においてリアルタイムで動的に更新することができる。ここで用いられているとおり「オブジェクト」は,個別に指定又は利用できるクライアント114における任意のデータである。オブジェクトの例は,文字及び文字列,画像,フレーム,表,オーディオ,ビデオ,アプレット,スクリプト,HTML,XML,並びにウェブページ,アプレットが用いる変数及びほかの情報,スクリプト及び/又はコード,ウェブページに組み込まれたURLのようなウェブページの要素である。アプリケーションとオペレーティングシステムの構成物もまたオブジェクトである。例えば表計算のセル,ワープロ文書のテキスト,並びにオペレーティングシステム又はアプリケーションが表示するタイトルバー及びメッセージもオブジェクトである。複数のオブジェクトは,1つの論理的オブジェクトにまとめることができることが好ましい。このようにオブジェクトは,任意の所望の又は役に立つ粒度レベルで定義できる。
ウェブページ上のコンテンツは,「オブジェクト」によって概念化され,組織化されているので,本発明は本質的にウェブページ,ウェブページコンテンツ,ほかのモジュール及び/又はクライアント114における機能を,HTMLコード又はほかの通常表現から抽象化する。この抽象化によって情報プロバイダ108は,クライアント114においてデータを表現する位置,表示形式又はどのように表現するかについてのほかの仕様にかかわらず,オブジェクトの特性値を更新することができる。
ライブオブジェクトは,そのオブジェクトに関連した,又はそのオブジェクトに関して参照している任意の修正可能データを含む関連する「特性値」を有する。必須ではないが典型的には,情報プロバイダ108はクライアント114に提供されるライブオブジェクトの特性値を初期設定する。特性値は,ウェブページ又はほかのデータ表現内のオブジェクトの視覚的表現に影響するものであってもよいし,そうでないものでもよい。特性値はオブジェクトの内部態様に影響するものであってもよいので,したがって特性値の変更はオブジェクトを含むウェブページに直接の影響を持たないこともある。例えば特性値は,オブジェクトの特定の態様が修正可能かどうか,オブジェクトがユーザ入力又はほかの刺激にどのように応答するか,などに影響してもよい。また更に特性値は,オブジェクトがクライアント114においてどのように表示されるかについて,直接影響を持ってもよい。例えば特性値は,オブジェクトによって表示されるテキスト,画像又はほかのデータの内容,色,字形,大きさ,書式,又はほかの属性に影響してもよい。ほかの特性値は,オブジェクトの可視表現に全く影響を持たないものと,オブジェクトの可視表現に影響を持つものとの間の範囲の一部を占める。例えばフットボール試合の点数を示しているウェブページは,試合のリスト及びサーバ112がウェブページを提供した時点の試合の点数を含むことができる。試合のリストと,表示する試合のサブセットと,試合の点数とは,それぞれライブオブジェクト(又は1つのライブオブジェクトの特性値)として指定することができ,必要なとき又は所望されたときに更新することができる。
また特性値は,オブジェクトのインスタンスの実体化又はオブジェクトの機能の呼出しを含むことができることが好ましい。例えばブラウザウィンドウオブジェクトの特性値は,ほかのブラウザウィンドウを実体化するための機能を含んでもよい。この機能は,オブジェクトの特性値への論理的変更として呼び出される。第2ブラウザウィンドウは,元のブラウザウィンドウ(すなわちオブジェクト)を介して参照できるか,又は新しいライブオブジェクトとして指定できる。
情報プロバイダ108又はほかのエンティティは,クライアント114において更新メッセージを介してライブオブジェクトを更新することが好ましい。一般に更新メッセージはライブオブジェクト及び必要ならばライブオブジェクトの特性値を指定し,特性値を更新するデータを含む。1つの実施例においてデータは,特性値の実際の値であってもよいし,オブジェクトの特性値を更新するための実行可能コードであってもよい。例えばデータは,それに対して特性値を設定する単純な数字又は文字,例えば「4」であってよく,及び/又はデータはオブジェクトの特性値に所望の変化を与えるクライアントにおけるJAVASCRIPT(登録商標)コード,又はJAVASCRIPT(登録商標)機能の呼出しであってもよい。
更新メッセージはライブオブジェクトの特性値を更新する際に用いるクライアント114におけるハンドラを,暗黙に,又は明示的に指定することが好ましい。1つの実施例においてクライアント114は,メッセージが暗黙にハンドラを指定するとき(例えばメッセージが特定のハンドラを指定しないとき),既定のハンドラを利用する。1つの実施例においては,更新メッセージが特性値の実際の値を指定するとき,既定のハンドラは特性値を指定された値に変更するためのJAVASCRIPT(登録商標)コードを生成する。更新メッセージ内のデータがJAVASCRIPT(登録商標)であるときは,既定のハンドラはどのようなコードの処理も行わない。どちらの場合においても既定のハンドラは,クライアント114におけるJava(登録商標)仮想マシン(JVM)122においてJAVASCRIPT(登録商標)コードを実行するために,LiveConnectを用い,それによってライブオブジェクトの特性値を更新することが好ましい。
あるオブジェクト種別及び/又はデータ種別に対しては,既定のハンドラは適当ではない。これらの場合メッセージは,明示的に更新を実行するためのハンドラを指定することが好ましい。例えばメッセージは,明示的にデータを要求する機能を規定してもよいし,又はデータが実行される環境を明示的に指定してもよい。例えば更新メッセージ内のデータは,マクロメディアフラッシュ(登録商標)のようなソフトウェア「プラグイン」によって実行されるコードを含んでもよく,またメッセージはハンドラとしてフラッシュ(登録商標)を明示的に指定してもよい。
情報プロバイダ108は,クライアント114に提供されるウェブページ又はほかのデータ表現において,オブジェクトの唯一の識別子,すなわちオブジェクトIDを含ませることによって,オブジェクトを「ライブ」として指定することが好ましい。1つの実施例において情報プロバイダ108は,オブジェクトIDを次に示すHTML表現を用いて,オブジェクトに対応するHTMLの「ID」属性にオブジェクトIDを符号化する。
ID=”要素識別子”
ここで”要素識別子”はオブジェクトIDであって,文字列であることが好ましい。文字列は,情報プロバイダ108又はオブジェクトIDを確立するほかのエンティティが所望する任意の情報を符号化することができ,1つの実施例においては単純な文字及び/又は数字による識別子である。1つの実施例においては情報プロバイダ108は,たまたま規定されたID属性を有するほかのオブジェクトとライブオブジェクトとを識別するために,”Bang$”のような所定のトークンでオブジェクトIDが始まるようにする。例えばオブジェクトは,オブジェクトID”Bang$要素識別子”を有する。
好ましい実施例においては,各情報プロバイダ108はさまざまな情報プロバイダのオブジェクトID間で名称が重なるのを防ぐために,選択的にオブジェクトIDに唯一の情報プロバイダIDを符号化する。1つの実施例においては情報プロバイダIDは,文字及び/又は数字の識別子である。情報プロバイダ108は,階層的名前空間の一部に情報プロバイダID及びオブジェクトIDを指定することができる。例えば1つの実施例においては,オブジェクトは次のように命名される。
”$名前空間1$[名前空間2$・・・$名前空間N$]オブジェクトID”
ここで”$名前空間1”は情報プロバイダIDであり,”$”は名称のセパレータとして機能し,名前空間階層の追加選択レベルを記述する。システム100の1つの実施例は,典型的なディレクトリサービス機能に対応する。例えば一緒に現れる2つのドル記号”$$”は,名前空間階層の最上位レベルを指す。
このようにしてライブオブジェクトのオブジェクトIDは,所定のトークンと,情報プロバイダID名前空間と,情報プロバイダ108が指定した値との組合せによって形成されることが好ましい。例えば記号”BANG”を有する株のリアルタイムの価格を表すライブオブジェクトのオブジェクトIDは次のようになる。
”Bang$$情報プロバイダID$普通株$リアルタイム$bang”
この例において”Bang$”はライブオブジェクトを表す所定のトークンであり,”$情報プロバイダID”は情報プロバイダを識別するIDであり,”普通株$リアルタイム$”は名前空間階層のレベルを記述し,そして”bang”は特定のオブジェクトを指定する。
いくつかの実施例及び状況においては,オブジェクトIDは相対名称を用いる。例えば自分自身のオブジェクトIDを参照する情報プロバイダ108は,暗黙に自分の名前空間内にいる。したがって情報プロバイダ108は,内部的に用いるオブジェクトIDの中に情報プロバイダIDを含める必要はない。1つの実施例においては,情報プロバイダIDはオブジェクトIDの中に明示的に符号化されない。その代わりに情報プロバイダIDは,ページのオブジェクトIDの範囲を示すために,ウェブページのほかの場所に符号化される。
1つの実施例においてオブジェクトIDは,クライアント114におけるウェブページ又はほかの文書の文書オブジェクトモデル(DOM)表現内の点(すなわち,ツリーのノード)を指定する。DOMは,文書をオブジェクトの階層として表すプラットホーム及び言語に非依存のインタフェースである。またDOMは,プログラム及びスクリプトがオブジェクトの特性値を動的に利用し,更新することができるインタフェースを提供する。オブジェクトの特性値は,下位オブジェクトが継承できる。
本実施例においてクライアント114は,DOM表現内の指定した点のコンテキストにおいて,更新メッセージを実行することが好ましい。更新メッセージは,指定された点におけるオブジェクトの特性値に対する変更を指定することができる。また更新メッセージは,指定された点におけるオブジェクトの上位オブジェクト又は下位オブジェクトに対する変更を指定することもできる。それぞれの場合更新メッセージは,DOM表現内の指定した点に相対的に実行される。1つの実施例においてDOM表現内の点は,これらの点に位置するライブオブジェクトの特性値をどのように更新するかを指定する。このように,DOM表現内の指定されたライブオブジェクトの位置に依存して,同一の更新メッセージは異なって解釈されることがある。
例えば”ウィンドウ.文書.フレーム[3].オブジェクトID”で指定されるDOM表現内のオブジェクトがあるとしよう。またそのオブジェクトは,オブジェクトが表示するテキストを指定する,”ウィンドウ.文書.フレーム[3].オブジェクトID.内部テキスト”に位置する”内部テキスト”特性値を有するものとしよう。更新メッセージは,”オブジェクトID”及び内部テキスト特性値の新しい値を指定することによって,オブジェクトが表示するテキストを変更することができる。
オブジェクトを指定するためにオブジェクトIDを用いる利点は,更新メッセージを提供する情報プロバイダ108又はほかのエンティティが,DOM表現内のオブジェクトの実際の位置を知らなくてもオブジェクトの特性値を利用及び変更できることである。実際オブジェクトは,さまざまなDOM表現内のさまざまな位置にあってもよいし,及び/又は同一のDOM表現内の複数の位置にあってもよい。これらの場合のどれにおいても,更新メッセージは指定されたオブジェクトIDを有するすべてのオブジェクトの指定された特性値を変更する。
環境100の特定の実施例に依存して,情報プロバイダ108及び/又は動的コンテンツプロバイダ116は配信ネットワーク110に更新メッセージを提供する。動的コンテンツプロバイダ116は,株価及び/又はスポーツの得点のようなリアルタイム情報を提供するエンティティが運用する通常の計算機システムであることが好ましい。1つの実施例において情報プロバイダ108は,動的コンテンツプロバイダ116又はほかの情報源からライブオブジェクトの更新された特性値を受信する(又は内部的に更新された特性値を生成する)。次に情報プロバイダ108はオブジェクトID及びオブジェクトの特性値への変更を指定する更新メッセージを,配信ネットワーク110へ送信する。この実施例においては,動的コンテンツプロバイダ116は環境100になくてもよい。
もう1つの実施例において動的コンテンツプロバイダ116は,ライブオブジェクトのオブジェクトIDを1以上の情報プロバイダ108に提供し,情報プロバイダ108はライブオブジェクトをクライアント114に配信する。次に動的コンテンツプロバイダ116は,ライブオブジェクトの特性値への変更を指定するメッセージを配信ネットワーク110へ送信する。例えば動的コンテンツプロバイダ116は,特定の野球試合の得点に関係付けられたオブジェクトIDを情報プロバイダ108へ配信する。次に動的コンテンツプロバイダ116は,特定の野球試合の表示された得点を制御するオブジェクトのオブジェクトID及び特性値の更新を指定するメッセージを送信する。これら2つの実施例は相互に排他的ではなく,したがっていくつかの更新メッセージは情報プロバイダ108によって配信ネットワーク110へ提供され,一方でほかの更新メッセージは動的コンテンツプロバイダ116によって提供される。
クライアント114は,サーバ112からページ118及び/又はほかの情報を取得するデバイスである。1つの実施例においてクライアント114は,インターネット上の情報を利用するために人が用いる通常のパーソナル計算機である。代替実施例においては,クライアント114は,インターネット対応テレビ,携帯電話機,パーソナルデジタルアシスタント(PDA),ウェブ閲覧装置,などのようなインターネット接続性を有する別の消費者向け電子デバイスである。クライアント114は,関連する表示デバイスを備えることが好ましいが必須ではない。
クライアント114は,ウェブページを取得して表示デバイス上に表示するために,マイクロソフトインターネットエクスプローラ(登録商標)のようなウェブブラウザ120を実行することが好ましい。クライアントが通常のウェブページ以外のデータ表現をサーバ112から受信する実施例においては,ウェブブラウザ120は必ずしも通常のウェブブラウザと類似性がない。好ましくは,ウェブブラウザ120はJAVA(登録商標)アプレット及び/又はスクリプトを実行するJVM122を含む。またウェブブラウザ120は,JAVASCRIPT(登録商標)(又はVBScriptのようなほかのスクリプト言語)及び文書オブジェクトモデル(DOM)への対応のようなダイナミックHTML能力を含み,JAVA(登録商標)とスクリプト言語との間の通信を可能にすることが好ましい。1つの実施例においてウェブブラウザ120は,JAVA(登録商標)アプレットと,対応するスクリプト言語で書かれたスクリプトとの間の通信を可能にするLiveConnect標準に対応する。またウェブブラウザ120は,マクロメディアブラッシュ(登録商標),リアルネットワークスリアルプレイヤ(登録商標),及び/又はアップルクイックタイム(登録商標)のようなソフトウェアプラグインによって拡張することができる。代替実施例においてJVM122の機能及び/又はウェブブラウザ120のほかの態様は,クライアント114内の1以上のほかの機能ユニットによって提供される。「モジュール」という用語は,ここではモジュールの機能を提供するために用いられるソフトウェア計算機プログラム及び/又はハードウェア又は回路を指す。ウェブブラウザ120及びJVM122は,クライアント114におけるモジュールの例である。
いくつかの実施例においてクライアント114は,必ずしも表示デバイス,ウェブブラウザ120,及び/又は典型的な消費者向けデバイスに関連するほかのコンポーネントを備えていない。例えばクライアント114は,ウェブ対応装置,若しくは自動車,オーディオビデオ装置,又はあるほかのデバイスのコントローラに組み込まれたHTTPクライアントのような,ある態様のウェブ接続性を備える専用目的デバイスであってもよい。
サーバ112からクライアント114に提供されるページ118は,ウェブページ上にライブオブジェクトを実現する命令を含むことが好ましい。その命令は,クライアント114が自動的かつ透過的に(すなわちユーザ対話なしに)配信ネットワーク110に接続して,ライブオブジェクトを活性化するための活性化モジュール124をダウンロードするようにさせる。1つの実施例において命令は,配信ネットワーク110内の活性化モジュール124の位置を指定するURLを含む。代替実施例においては,クライアント114はサーバ112又はほかの情報源から活性化モジュール124を取得する。
活性化モジュール124はJVM122が実行するJAVA(登録商標)命令を含むことが好ましい。しかしモジュール124の代替実施例は,別の言語及び/又は技法を用いてページ118及び/又は活性化モジュール124内の命令を符号化してもよい。例えば命令及び/又は活性化モジュール124は,ウェブブラウザ120又はオペレーティングシステムに,ネイティブコード又はプラグインのいずれかとして組み込むことができる。これらの代替実施例においては,ウェブブラウザ120は外部情報源から活性化モジュール124をダウンロードする必要がない。
活性化モジュール124は,クライアント114がダウンロードしたページ118のオブジェクトIDを配信ネットワーク110に登録し,ネットワークから受信する更新メッセージに応答してライブオブジェクトを更新することが好ましい。配信ネットワーク110は,レジストリ125に登録情報を記録する。クライアントの登録情報は,クライアントが関連ページ118を表示している限り有効であることが好ましいが,システム100のほかの実施例では,クライアントの登録情報をいつ終了させるかについて判定するために別の基準を用いてもよい。
図2は,ライブオブジェクトの特性値を更新するための,サーバ112と,情報プロバイダ108又は動的コンテンツプロバイダ116(一般に「入力情報源210”と呼ばれる)と,クライアント114と,配信ネットワーク110との間の対話を示す対話ダイアグラムである。始めにクライアント114は,サーバ112にウェブページ要求を送信する(ステップ212)。それに応答してサーバ112は,1以上のライブオブジェクトを含むか又は指定するウェブページをクライアント114に提供する(ステップ214)。ウェブページに符号化された命令は,クライアント114が配信ネットワーク110に活性化モジュール124を透過的に要求するようにする(ステップ216)ことが好ましい。これに応答して配信ネットワーク110は活性化モジュール124を送信する(ステップ218)。クライアント114は活性化モジュール124を実行し(ステップ220),活性化モジュールはクライアントにおけるライブオブジェクトのオブジェクトIDを識別して,配信ネットワーク110にオブジェクトIDを登録する(ステップ222)。配信ネットワーク110はクライアント114が登録したオブジェクトIDを指定するために,レジストリを更新する(ステップ223)。
クライアント114におけるライブオブジェクトの特性値を変更するために,ある時点で入力情報源210は更新メッセージを配信ネットワーク110へ送信する(ステップ224)。1つの実施例において入力情報源210から配信ネットワーク110へのメッセージは,1つのオブジェクトID及び指定されたオブジェクトの特性値に対する更新値だけを含む。もう1つの実施例においては,メッセージは複数のオブジェクトID及び対応する更新値を含む。後者の実施例においてメッセージは,メッセージが複数のオブジェクトID及び更新値を有することを指定する「バッチID」を伴うことができる。情報プロバイダ108はオブジェクトIDを含ませるのと同じ方法でページ118にバッチIDを含ませることができることが好ましい。同様にクライアント114は,オブジェクトIDと同じ方法で配信ネットワーク110にバッチIDを登録できることが好ましい。実際バッチIDはオブジェクトIDと同じであってもよく,それによってクライアント114は1つのIDを登録することによってバッチメッセージ及び非バッチメッセージ双方を登録することができる。代替として,バッチメッセージを登録するために,別個の手続を確立してもよい。クライアント114は,バッチの各部品メッセージを各々別個に配信されたかのように処理することが好ましい。
次に配信ネットワーク110は,指定されたオブジェクトIDで登録されたメッセージを,IPアドレスのような標準インターネット通信プロトコルを用いて,各クライアント114へ配信する(ステップ226)ことが好ましい。クライアント114における活性化モジュール124は,メッセージを処理し,指定されたライブオブジェクトの特性値を更新する(ステップ228)。クライアント114において同一のオブジェクトIDを有するオブジェクトが複数の場所(例えば,クライアントにおいて表示されているウェブページ上の複数の場所)に現れたとき,活性化モジュール124は指定されたIDを有するライブオブジェクトのそれぞれを更新することが好ましい。結果として配信ネットワーク110は,クライアント114におけるライブオブジェクトが動的に更新されるようにする。この配信及び更新は,入力情報源210の目的に照らして「リアルタイム」とみなせるだけ十分早く行われることが好ましい。
図2の破線で囲んだ部分230に示すこの更新処理は,不定の回数繰り返すことができ,入力情報源210及びクライアント114に関して完全に非同期である。例えば入力情報源210は,スポーツ試合の得点が変わったとき,又は株価が変動したとき,配信ネットワーク110に定期的な更新メッセージを送信してもよいが,スポーツ試合が終わったとき,又は株式市場が閉じたときは更新メッセージを送信することを停止してもよい。クライアント114がライブオブジェクトを含むウェブページの表示を終了したとき,又はもはや更新メッセージの受信を望まないとき,クライアントは配信ネットワーク110とのコネクションを閉じる(ステップ232)ことが好ましい。次に配信ネットワーク110はレジストリ125を更新し(ステップ234),クライアントのオブジェクト登録を削除する。もう1つの実施例においては,クライアント114は配信ネットワーク110に,ほかのオブジェクトに属する更新メッセージを受信するためにまだコネクションを開いている1以上のオブジェクトからクライアントを選択的に登録及び/又は登録削除するメッセージを送信する。
図3は,配信ネットワーク110が実行する多対多の対応付けを図示する高レベルダイアグラムである。複数の入力情報源(210A〜210C)は配信ネットワーク110に更新メッセージを送信する。各更新メッセージは,少なくとも1つのオブジェクトID及び指定されたオブジェクトの特性値の更新値を指定することが好ましい。次に配信ネットワーク110は,特定の入力情報源210に特定のオブジェクトIDを登録したクライアント114へ,選択的に更新メッセージを配信する。図3において,例えばクライアント312A及び312Bが,ほかのクライアントがオブジェクトIDを登録していないうちに特定のオブジェクトIDを登録したとしよう。したがって配信ネットワーク110は,更新メッセージをクライアント312C〜312Hへではなく,クライアント312A及び312Bに配信する。
図4は,動的コンテンツ配信ネットワーク110の能力例を示している。図4は,スポーツの得点を含む2つの別のウェブページ410及び412を示している。各ウェブページは異なる書式化がされているが,各ページは2つのプログラムフットボール試合及び2つのプロ野球試合の同じ得点を含んでいる。ウェブページ410は見出し「地域スポーツ得点」の下に4つのすべての試合を含んでいるが,一方ウェブページ412は見出し「野球の得点」の下に野球試合を,見出し「フットボールの得点」の下にフットボール試合を含んでいる。
ライブオブジェクトを用いてウェブページ内に試合及び得点を内部表現するさまざまな方法がある。1つの実施例においては,試合にかかわる2つのチーム及び各チームの得点の特性値を有する「ゲーム」オブジェクトが定義される。ゲームオブジェクトはウェブページ内の選択された位置に置かれ,オブジェクトの特性値が試合についての情報をページ上に表示させる。もう1つの実施例においては,「チーム」オブジェクト及び「得点」オブジェクトが定義され,チームオブジェクトはチームの名前を記述する特性値を有し,得点オブジェクトは得点を記述する特性値を有する。2番目の実施例においては,チームオブジェクト及び得点オブジェクトはページ上の選択された位置に置かれ,それによってページが描画されたときに適正なチーム及び得点が並べられる。更にもう1つの実施例においては,オブジェクトは1つのチームの名前及びそのチームの得点に対する特性値を有するように定義される。そして2つのオブジェクトが,試合及び得点を示すように適正に揃えられてページ内に置かれる。もう1つの実施例においては,2つのチームの名前を指定する特性値を有する1つのオブジェクトが定義され,2つの得点を指定する特性値を有する別のオブジェクトが定義される。最後の実施例において2つのオブジェクトはチームの名前が関連する得点と揃うようにページ内に置かれる。これらの表現のほかにも変形物が存在可能であることは明白である。
図4の例に対して,ある試合のチームの名前は2つのチームの名前に対する特性値を有する「名前」オブジェクトによって特定され,試合における得点は,2つの得点に対する特性値を有する「得点」オブジェクトによって特定される。ウェブページ410において名前オブジェクト414は,”SF49ers”及び”STL Rams”を指定するように設定された特性値を有し,見出し「地域スポーツ得点」の直下にある。得点オブジェクト416は,試合の得点を「42」対「7」として指定するように設定された特性値を有し,名前オブジェクト414のすぐ右にある。ウェブページ412において二番目の名前オブジェクト418の特性値は,少し異なる用語「SF」及び「STL」を用いて同じ試合を指定する。しかしながらこの名前オブジェクト418は,ウェブページ410内で使われるとき,同じ得点オブジェクト416と揃えられる。
このようにして同じ得点オブジェクト416が,各ウェブページ410及び412内の別の位置で用いられる。双方のウェブページ上のサンフランシスコ49ers対セントルイスRamsのフットボール試合の得点を更新するために,入力情報源210は単に,得点オブジェクト416のオブジェクトID及び得点特性値の更新値を指定する更新メッセージを配信ネットワーク110に送信すればよい。配信ネットワーク110は更新メッセージを適切なクライアント114へ配信し,そしてクライアントは特定のページ割り付けにかかわらず,適切な得点を更新する。
入力情報源210,すなわち情報プロバイダ108及び/又は動的コンテンツプロバイダ116は,更新メッセージを生成するさまざまなツールを用いることができる。図5は,入力情報源210及び更新メッセージを生成するために利用可能なツールを示すブロック図である。ここに説明するものに加え,又はその代わりに,ほかのツールを利用することもできる。
ツールは,入力情報源210がメッセージを受け付けるために配信ネットワーク110の提供するアプリケーションプログラミングインタフェース(API)を利用できるようにすることが好ましい。1つの実施例においては,入力情報源210が送信するメッセージは,クライアント114における活性化モジュール124用いるものと同一の形式である。代替実施例においては,配信ネットワーク110に提供されるメッセージは別の形式であり,配信ネットワークがメッセージを活性化モジュール124が用いる形式に変換する。
1つの実施例において入力情報源210はAPIを利用するためにデータポンプモジュール510を利用する。データポンプモジュール510は,1以上のオブジェクトID及び指定されたオブジェクトの新しい値を含む拡張可能マーク付け言語(XML)ファイルを定期的に読み込み,オブジェクトの特性値への変更を表すメッセージを配信ネットワーク110へ送信するAPI呼出しを自動的に生成する。もう1つの実施例においては,データポンプモジュール510はイベント駆動型であり,ファイルの変更又はあるほかの出来事に応答してXMLファイルを読み込む。
もう1つの実施例においては,入力情報源210はAPIを利用するために管理者コンソールモジュール512を利用する。管理者コンソールモジュール512は,管理者にページ118の内容を表示する図形インタフェースを提示することが好ましい。例えば管理者は,管理者コンソール512を用いてウェブページ上の文字データ,画像及び/又は任意のオブジェクト,若しくはオブジェクトの特性値を編集することができる。編集後管理者は,「更新を送信する」ボタン又は類似の技法を用いて,管理者コンソールモジュール512がAPIを介して変更されたオブジェクト及び特性値のためのメッセージを配信ネットワーク110に送信するようにできる。
もう1つの実施例においては情報プロバイダ108及び動的コンテンツプロバイダ116は,APIを利用するためにコンテンツ管理システムモジュール514を用いることによって共に入力情報源210として機能する。コンテンツ管理システムモジュール514は情報プロバイダ108に常駐し,動的コンテンツプロバイダ116からオブジェクト特性値の更新を受信することが好ましい。コンテンツ管理システムモジュール514は,サーバ112に格納されているページ118内のライブオブジェクトの特性値を更新し,また変更された特性値のためのメッセージを配信ネットワーク110に送信することが好ましい。この方法によってサーバ112におけるページ118及びクライアント114において表示されているウェブページは,ほとんど同時に更新される。1つの実施例において動的コンテンツプロバイダ116は,情報プロバイダ108の代わりに配信ネットワーク110に更新メッセージを送信する。またシステム100の実施襟は,ここに記載したコンテンツ管理技法のどの組合せを用いてもよい。
例えば上記のツールは,得点オブジェクトが表示させたテキストを「2」に更新するために,次に示すコードを有するメッセージを生成することができる。
LiveObject score = new LiveObject("Bang$homeScoreID");
score.setProperty("innerText", "2")
このコードは,オブジェクトID"Bang$homeScoreID"を有するオブジェクトの"innerText"特性値を2に設定する。ツールはAPIを用いてこのメッセージを配信ネットワーク110へ回送する。
ここでクライアント114において実行される操作に移る。図6は,活性化モジュール124の実施例によって実行されるステップを示すフローチャートである。当業者であれば,別の実施例は図6のステップを別の順序で実行できることを認識するであろう。一般に活性化モジュール124は,3つの機能を実行する。オブジェクトIDを配信ネットワーク110に登録する機能と,ライブオブジェクトの特性値を更新するために,ネットワークからクライアント114が受信したメッセージを処理する機能と,クライアントとネットワークとの間の通信を制御する機能とである。
オブジェクトIDを登録するために,活性化モジュール124はサーバ112から受信したページ118をパースし(ステップ610),ライブオブジェクトのオブジェクトIDを指定することが好ましい。代替実施例においては,活性化モジュール124はウェブブラウザ120が現在表示しているライブオブジェクトだけのIDのような,オブジェクトIDのサブセットだけを指定する。代替として,オブジェクト自身に加えてオブジェクトIDのリストをウェブページ内にあらかじめ符号化しておき,それによって活性化モジュール124が容易に指定できるようにしてもよい。更にもう1つの実施例においては,クライアント114のユーザが登録するオブジェクトIDを選択する。
活性化モジュール124は,クライアント114と配信ネットワーク110との間のコネクションを開く(ステップ612)ことが好ましい。活性化モジュールがページ118を受信及び/又はパースする前,又はした後,活性化モジュール124はこのコネクションを開くことができる(ステップ612)。いくつかの場合にクライアント114は,クライアントが要求できるコネクションの種別について制限を設けるファイヤウォールの後ろに位置する。例えばファイヤウォールは,すべてのHTTPでないトラヒックを阻止するかもしれない。このために活性化モジュール124は,ファイヤウォールを通じて配信ネットワーク110に要求を送信するために,HTTPヘッダ内にコネクション要求を包み込むことが好ましい。
活性化モジュール124はクライアント114と配信ネットワーク110との間のコネクションを用い,指定されたオブジェクトIDを含むベクトル(例えばリスト又は配列)を配信ネットワーク110へ送ることによってオブジェクトIDを登録する(ステップ614)。ファイヤウォールを通じてこの処理を達成するために,活性化モジュール124はベクトルを「オブジェクトデータ」と呼ばれる文字列に入れ,そしてオブジェクトデータを配信ネットワーク110へ送るためにHTTPメッセージを生成することが好ましい。概略の例は次のとおりである。
POST/HTTP/1.1\r\n
Content−Length:<オブジェクトデータ長>\r\n
\r\n
<オブジェクトデータ>
ここで<オブジェクトデータ>は,オブジェクトIDのリストである。配信ネットワーク110がそのようなHTTP要求を受信すると,オブジェクトデータを抽出し,レジストリ125を更新して,クライアント114が指定されたオブジェクトを登録すたことを示す。
ウェブブラウザ120が新しいページをロードしたとき(ステップ616),又はそうではなく最初のページ上のオブジェクトの表示を終了したとき,最初のページに関連した活性化モジュール124はクライアントと配信ネットワーク110との間のコネクションを終了する(ステップ618)ことが好ましい。当業者であれば,この終了(ステップ618)が図6に示したほかのステップとは非同期に起きることがあることを認識するであろう。したがってステップ616及び618の位置は,終了が起きることがある一連のステップにおける1つの可能性のある位置を表すに過ぎない。
コネクションが終了しないときは,活性化モジュール124はオブジェクトID及び指定されたオブジェクトの特性値の更新値を指定したメッセージを配信ネットワーク110から受信する(ステップ618)まで待機することが好ましい。1つの実施例においては,このメッセージはHTTPデータとして受信される。メッセージを受信すると活性化モジュール124は,HTTPデータからオブジェクトID及び更新値を抽出する(ステップ620)。次に活性化モジュール124はメッセージが指定するとおりに指定されたオブジェクトの特性値を更新し(ステップ622),又はオブジェクトを更新する。
メッセージの受信(ステップ618)と,データの抽出(ステップ620)と,オブジェクトの更新(ステップ622)との連鎖は,新しいページがロードされる(ステップ616)か,又はそうではなく配信ネットワーク110とのコネクションが終了するまで繰り返されることが好ましい。図6には示していないが,ページ118に関してユーザの操作が新しいライブオブジェクトを活性化するときのようなある状況においては,活性化モジュール124は,始めに新しいページをダウンロードし,パースすることなく配信ネットワーク110に新しいオブジェクトIDを登録してもよい。1つの実施例においては,新たにロードされたページがライブオブジェクトを含むとき,図6に示すように活性化モジュール124をダウンロードする処理及びオブジェクトを更新する処理が繰りかえされる。代替実施例においては,活性化モジュール124はクライアント114において活性のままであり,したがってクライアントは配信ネットワーク110から活性化モジュールを再ダウンロードしない。その代わりに既に存在する活性化モジュール124が新しいページ上のライブを可能にする処理を実行する。
図7は,本発明の実施例による配信ネットワーク110の低レベルの様子を示すブロック図である。当業者であれば,配信ネットワーク110の機能を実装する多くの代替方法があることを認識するであろう。図7は,情報プロバイダ710A及び動的コンテンツプロバイダ710Bのような配信ネットワーク110にメッセージを提供する情報源を表す複数の入力情報源(710A〜710D)を示している。また図7は,任意の時点で配信ネットワーク110と通信している多くのクライアントを表す複数のクライアント(712A〜712F)も示している。
配信ネットワーク110は,内部的に1以上のクラスタ714に分割されていることが好ましい。図7において配信ネットワーク110は,3つのクラスタ714A,714B,714Cを含むが,クラスタ数はネットワークの処理要望に応じて変えてもよい。入力側全体ロードバランサ716は,入力情報源710からクラスタ714へメッセージを配信することが好ましい。類似してクライアント側全体ロードバランサ718は,クライアント712からクラスタ714へのコネクション要求を配信することが好ましい。ロードバランサ716及び718は,所定のヒューリスティックによって負荷が各クラスタ714に分配されることを保証するように設計されている。例えば負荷を各クラスタ714に均等に分配してもよいし,より高性能なクラスタに大部分の負荷を分配してもよい。1つの実施例においては1つのロードバランサが入力側716ロードバランサ及び出力側718ロードバランサの機能を実行し,通常のドメイン名システム(DNS)に基づく負荷バランス法を利用する。
クラスタ714Aを代表とする各クラスタ714は,入力側クラスタロードバランサ720A及びクライアント側ロードバランサ722Aを含むことが好ましい。クラスタロードバランサ720A及び722Aは,対応する全体ロードバランサ716及び718に類似して機能する。すなわち入力側クラスタロードバランサ720Aは,着信メッセージを1以上の各ゲートウェイ724Aに振り分けて配信し,そしてクライアント側クラスタロードバランサ722Aは,着信コネクション要求を1以上の各ノード726A及び各アプリケーションサーバ728Aに振り分けて配信する。
1つの実施例においては,2つのクライアント側クラスタロードバランサ720A及び722Aの機能は,1つのコンポーネントで提供される。この単一コンポーネントロードバランサは始めに,着信要求がメッセージをゲートウェイ724Aに送信しようとしている入力情報源710からのものか,ノード726Aへのコネクションを求めているクライアント712からのものか,又はアプリケーションサーバ728Aへのコネクションを求めているクライアントからのものかを判定する。次にロードバランサはメッセージ又はコネクション要求を,クラスタ714内のゲートウェイ724Aと,ノード726Aと,アプリケーションサーバ728Aとに配信する。1つの実施例においては,単一コンポーネントロードバランサは第7層負荷バランス(すなわちアプリケーション層における負荷バランス)を提供する。ノード726A及びアプリケーションサーバ728Aのための負荷バランスは,セキュリティのためにほとんどのクライアントウェブブラウザが,アプリケーション(例えば活性化モジュール124)にそれがダウンロードされた場所にだけ透過的に接続することを許可するので,同一のコンポーネントで実行することが好ましい。
配信ネットワーク110の代替実施例においては,全体ロードバランサ716及び718,並びにクラスタロードバランサ720A及び722Aを結合してもよいし,及び/又はロードバランサの機能をクラスタ714の内部又は外部の別のコンポーネントに組み込んでもよい。更に代替実施例はこれらロードバランサのうち1以上を省略してもよい。例えば別のクラスタ714が別の顧客にサービスする場合は,全体ロードバランサ716及び718の必要性がなくなる。
クラスタ714内のゲートウェイ724Aは入力情報源710からメッセージを受信して適切なノード726Aへメッセージを振り向ける。1つの実施例においては各ゲートウェイ724Aが各クラスタ714内の各ノード726へ永続的なTCPコネクションを維持し,各メッセージを各ノードへ振り向ける。したがってゲートウェイ724Aはクラスタ714A内にあり,入力側クラスタロードバランサ720Aを介してコネクションを受信するが,ゲートウェイの対象範囲は全体の配信ネットワーク110にわたる。この広い対象範囲によって,任意の入力情報源からのメッセージが任意のクライアント712へ配信できる。
配信ネットワーク110の代替実施例においては,各ゲートウェイ724が同一のクラスタ714内のすべてのノード726へ永続的なTCPコネクションを維持し,かつほかの各クラスタ内の少なくとも1つのゲートウェイに少なくとも1つのコネクションを維持する。この実施例は,各ゲートウェイ724が同時に維持するTCPコネクションの数を減少させる。もう1つの代替実施例においては,各クラスタ714はまた,ほかのクラスタのゲートウェイ724とのコネクションを維持するゲートキーパ(図7には示していない)も含む。ゲートウェイ724はメッセージをゲートキーパに転送し,ゲートキーパは次にメッセージをほかのクラスタ714の各ゲートウェイに配信する。
ゲートウェイ724は入力情報源710からメッセージを受信する速度を制御しないので,ゲートウェイは処理できる(すなわちメッセージをノードに送信する)速度より速くメッセージを受信する可能性がある。したがって各ゲートウェイ724は,メッセージを失わないように受信してまだ処理していないメッセージの待ち行列730を維持することが好ましい。1つの実施例においては,待ち行列730が長すぎるようになると,ゲートウェイ724はメッセージを廃棄する。もう1つの実施例においてはゲートウェイ724はどのメッセージを廃棄するかを判定するためにあるメッセージ又は入力情報源に指定された優先度を利用する。
ノード726は,ゲートウェイ724から受信したメッセージを,そのメッセージによって指定されるオブジェクトIDで登録されているクライアント712へ送信することが好ましい。メッセージが指定するオブジェクトIDで登録されているクライアント712がないときは,ノードはメッセージを無視することが好ましい。ノード726は,そのノードに接続されているクライアント712が登録したオブジェクトIDを含むハッシュテーブル732として,レジストリ125のインスタンスを維持することが好ましい。1つの実施例においては,ハッシュテーブル732は各オブジェクトIDをリンクされたリストと関連付け,リストはそのオブジェクトIDで登録されているクライアント712ごとに1つの項目を含む。リンクされたリスト内の各項目は,対応するクライアント712へのコネクションを表すソケットへのポインタを含むことが好ましい。本技術においては周知のとおり,ソケットへのポインタは典型的には「ファイルディスクリプタ」と呼ばれ,ノードが対応するクライアントにメッセージを送信するために用いることができるアドレスを表す。ノード726は,クライアント712がオブジェクトへの興味を登録するたびに,ハッシュテーブル732及び/又はリンクされたリストに項目を加え,クライアントがノードとのコネクションを切断したか,又は特定のオブジェクトにもはや興味がなくなったことを示したとき,ハッシュテーブル及び/又はリンクされたリストから対応する項目を削除する。
本発明の代替実施例は,ハッシュテーブル732及びリンクされたリストに加えて,又はその代わりにほかのデータ構造を利用し,及び/又はデータ構造内の別のデータを用いる。例えば配信ネットワーク110の1つの実施例は,各クラスタ714内にノードの階層を備える。階層内のさまざまなノードがある入力情報源210から受信したメッセージを処理してもよいし,又はさまざまなクライアント712へ送信するメッセージを処理してもよい。この実施例においては,リンクされたリストはクライアント712へつながるソケットの代わりに,階層内の低位のノードを指してもよい。もう1つの実施例はノード階層がないが,それにもかかわらずあるノードをある入力情報源210又はクライアント712に指定する。
各クラスタ714内のアプリケーションサーバ728は,クライアントからの要求に応答してクライアント712に活性化モジュール124を提供することが好ましい。更にアプリケーションサーバ728は,環境100を維持するために必要な,又は望まれるかもしれない任意のほかのモジュールを提供する。配信ネットワークの代替実施例においては,1つのアプリケーションサーバ728がすべてのクライアントからの要求に対応する。このアプリケーションサーバ728は,あるクラスタ714内にあってもよいし,又はクラスタとは独立に存在してもよい。しかしながら単一アプリケーションサーバの実施例は,冗長性に欠けるため,望ましくない。
配信ネットワーク110は,Linux(登録商標)オペレーティングシステム(OS)を実行する通常の単一プロセッサ計算機システムを利用することが好ましい。配信ネットワーク110の各コンポーネントは,それらコンポーネントの別個の最適化を可能にするために,別個の専用計算機システムによって実装することが好ましい。OSの入出力(I/O)機能は,カリフォルニア州バークレイのカリフォルニア大学から得ることができるNBIOのような非停止OSパッケージを利用することによって強化することが好ましい。ノード726とのコネクションは長く続くとの仮定に基づいて,OSは動作していないコネクションの監視にリソースを割り当てないように構成することが好ましい。その代わり高度なソケットポーリング能力を提供するために,OSによく知られた/dev/pollパッチを施すことが好ましい。
更にOS内のTCP/IPスタックは,素早くメッセージを出力するために最適化することが好ましい。1つの実施例においては,スタック内の再送信タイマを200msから50msに減少させる。このタイマは,スタックが送信したパケットが受信されたことを示す肯定応答(ack)をどれだけ待つかを決める。Linux(登録商標)カーネルの再送信タイマ実装によって,カーネルは(たとえackが受信されても)最初の再送信タイマが時間切れになるまで,待機させている発信パケットを送信しない。再送信タイマ値を減少させることによって,この遅延の影響を最小化することができる。再送信タイマが時間切れになる前にackが受信されなかったときは,本発明の実施例は影響を受けたTCPコネクションの再送信タイマ値を増加させて,肯定応答されなかったパケットを再送信する。更にTCP/IPスタックは,Nagleアルゴリズムを用いていくつかの小さなメッセージをより長いメッセージに連結し,それによって配信ネットワーク110が送信するパケット数を減少させることが好ましい。
図8は,クラスタ714内のノード726が,ゲートウェイ724を介して入力情報源から受信したメッセージのオブジェクトに基づく配信を行うために実行するステップを示すフローチャートである。始めにノード726が入力情報源710からメッセージを受信する(ステップ810)。ノード726はメッセージからオブジェクトIDを抽出する(ステップ812)。更にノード726は選択的に,入力情報源710が利用する形式からクライアント712における活性化モジュール124が用いる形式に,メッセージを変換する(ステップ814)。上述のように1つの実施例においては,入力情報源710が用いるメッセージ形式は,活性化モジュール124が用いるメッセージ形式と同一である。したがってこの実施例においては,ノード726はメッセージを変換する必要がない。入力情報源710と活性化モジュール124とが別々のメッセージ形式を用いる代替実施例においては,ノード726はメッセージを変換することが好ましい。ノード726は,メッセージが参照するオブジェクトを登録したクライアント712のリンクされたリストを判定するために,抽出されたオブジェクト及び情報プロバイダIDに対応するハッシュテーブルの項目を参照する(ステップ816)。最後にノード726は,登録されたクライアント712それぞれにメッセージを送信する(ステップ818)。代替実施例においては,ノード726は選択的に,前とは反対にハッシュテーブル内の登録されたクライアントを参照した後にメッセージを変換する。後段でメッセージを変換することによって,ノード726は登録されたクライアント712の特定の要求条件に従ってメッセージを変換することができる。
動的コンテンツ配信ネットワークを用いた個別コンテンツの配信
図9は,1つの実施例によるページ118の例を示す図である。1つの実施例においてはページ118はウェブページであってよい。ほかの実施例においてはページ118はワープロ,表計算,電子メールなどのようなソフトウェアアプリケーションで生成されたどのようなページであってもよい。図示されているようにページ118は,市場データセクション902−1と,ニュース見出しセクション902−2と,最近行った取り引きセクション902−3と,口座収支セクション902−4と,のような複数のセクション902を含む。これらのセクションが示されているが,ページ118には任意の数のセクションを表示してもよいことが理解されるであろう。
1つの実施例においては,ページ118はウェブベースアプリケーションによって提供できる。配信ネットワーク110を用いて,多くのクライアント114に株及び債権の購入価格を配信することができる。各クライアントのページ118は,同一のセクション902を含んでもよいが,あるセクション902の情報は,ユーザごとに個別(例えば別内容)であってもよい。例えば市場データセクション902−1は,すべてのユーザに同一であってもよい。しかしながら最近の取引セクション902−3及び口座収支セクション902−4は,ユーザごとに個別化されていてもよい。例えば特定ユーザが行った最近の取引及びそれらの口座収支はユーザ個別であってもよく,また特定ユーザだけに送信してもよい。したがって個別情報は,ユーザに特定のどのような情報であってもよい。別々のユーザがおおむね同一の個別情報を有してもよいが,ユーザごとの個別情報は,ユーザごとに特定になることを理解されたい。
1つの実施例においては,特定ユーザの取引が終わったとき,自分のページ118だけが(例えば最近の取引セクション902−3の配下で)更新されることが望ましい。したがって個別情報は,このユーザだけに送られることが望ましい。
1つの実施例においては,セクション902に対して別のコンテンツが別の入力情報源210によって配信されてもよい。例えばある入力情報源210がニュース見出しセクション902−2にコンテンツを提供し,もう1つの入力情報源210が市場データセクション902−1にコンテンツを提供してもよい。更にリアルタイムデータを複数の入力情報源210が提供してもよい。入力情報源210は配信ネットワーク110及びクライアント114から離れたところにあってもよいし,又は別の実施例においては配信ネットワークの一部であってもよい。
ページ118に送信されるリアルタイム情報は,配信ネットワーク110を用いて配信することができる。1つの実施例においては各株904にIDを付与し,そのIDに対して発行されたメッセージは,すべてのユーザに配信してもよい。次にライブオブジェクトを更新してもよい。ライブオブジェクトは,更新できるどのようなデータであってもよい。例えばライブオブジェクトは,ページ118などの上に表示されるページ118の要素を表示するためのソフトウェアコードのようなページ118のデータ表現に含まれるどのようなデータであってもよい。共通の情報に加えて個別情報を,最近の取引セクション902−3及び口座収支セクション902−4に配信してもよい。更に共通情報と個別情報との組合せをセクションに送信してもよい。例えば共通及び個別情報をニュース見出しセクション902−2に配信してもよい。
1つの実施例においては,ユーザに個別メッセージを配信するために,配信ネットワーク110のバッチ能力を用いてもよい。この実施例においては,各ユーザに個別IDを付与することができる。個別IDはユーザに対して唯一又は特定であってもよい。また以降に述べるように,個別IDはユーザグループに特定であって1人のユーザだけに対してでなくてもよい。個別IDは,(ページ118のソフトウェアコードのbodyタグ内のように)ページ118のデータ表現内のどこに置いてもよい。次にデータ表現内のライブオブジェクトは共通IDと関連付けることができる。ライブオブジェクトはページ118内で見付けることができ,個別情報をライブオブジェクトに対して表示してもよい。共通IDは,複数のユーザに対して同一であってもよい。例えばウェブベースアプリケーションの最近の取引セクション902−3は,ID,”最近の取引ID”でしるしを付けてもよい。このIDは,たとえ個別情報がユーザごとに表示されても,すべてのユーザのページ118に対して同一であってよい。
1つの実施例において入力情報源210は,次に示す形式を用いてバッチメッセージを提供する。
[個別ID,(共通ID#1,”個別情報#1”),(共通ID#2,”個別情報#2”)]
個別IDはユーザに個別化されたIDであってよい。共通ID#1及び共通ID#2は,多くのユーザに共通のIDであってよい。個別情報#1及び個別情報#2は,ページを更新するために用いることができるどのような情報であってもよい。1つの実施例においては,口座収支のためのメッセージは次のメッセージを用いて上述のバッチメッセージで送信することができる。
[個別ID,(口座収支ID,”収支情報”),・・・]
このメッセージはユーザの口座の口座収支をユーザの個別除法で更新するために用いることができる。
配信ネットワーク110は,個別IDで登録されているユーザにバッチメッセージを配信する。ユーザのクライアント114にバッチメッセージが着信すると,メッセージ(共通ID#1,”個別情報#1”)及び(共通ID#2,”個別情報#2”)がクライアント114に送信されたかのように取り扱うことができる。個別IDは,メッセージが受信された後は用いることができない。
1つの実施例においてクライアント114のブラウザは,ページ118のデータ表現を評価してID,共通ID#1及び共通ID#2を見付ける。ページ118上のライブオブジェクトは,個別情報#1及び個別情報#2で更新することができる。情報プロバイダは,ユーザのページ118の構造を知ったり,又は理解したりする必要はない。また更新メッセージはDOM情報を含むことができないので,メッセージ自身は単純である。例えばメッセージの1つが(口座収支ID,”収支情報”)であったとき,クライアントのブラウザは更新メッセージ(すなわち更新メッセージの”収支情報”)で指定されたとおりの情報で口座収支セクション902−4を更新することができる。
このようにして複数のユーザの個別情報は,複数のユーザのページ118上に含まれるライブオブジェクトを更新するために用いることができる共通ID宛に送信することができる。個別IDは,上述のバッチメッセージ技法を用いてユーザに個別情報を送信するために用いてもよい。ライブオブジェクトは同一のIDを有することができるので,入力情報源210は複数の個別メッセージをライブオブジェクトの同一の共通ID宛に配信することができる。これによって用いるID数を減少させることができる。
図10は,1つの実施例によって配信ネットワーク110を用いて個別メッセージを配信するためのシステム1000を示す図である。システム1000は,複数のクライアント114と,配信ネットワーク110と,入力情報源210とを含む。
入力情報源210は,配信ネットワーク110のバッチ能力を用いて個別メッセージを送信することができるものであってよい。図示したとおり,3つのバッチメッセージ,メッセージ#1と,メッセージ#2と,メッセージ#3とが入力情報源210によって送信できる。メッセージ#1と,メッセージ#2と,メッセージ#3とは,3つの別の個別ID,個別ID#1と,個別ID#2と,個別ID#3とに宛てて送信できる。バッチメッセージは,共通ID,最近の取引ID及び口座収支IDを用いて送信されたメッセージを含む。しかし個別情報は,別のユーザのID,最近の取引ID及び口座収支IDを有する各メッセージに含めることができる。
3つのメッセージは入力情報源210から配信ネットワーク110へ送信することができる。配信ネットワーク110は,どのクライアント114が個別IDを登録したかを判定する。図示したとおりクライアント114−1は個別ID#1を登録し,クライアント114−2は個別ID#2を登録し,クライアント114−3は個別ID#3を登録している。したがってクライアント114−1(又はそのユーザ)が個別ID#1を登録しているので,メッセージ#1をクライアント114−1に送信することができる。更に,クライアント114−2及び114−3が対応する個別ID#2及び#3をそれぞれ登録しているので,メッセージ#2及びメッセージ#3をクライアント114−2及び114−3に送信することができる。次にクライアント114−1と,114−2と,114−3とはそれらのページ118をID,最近の取引ID及び口座収支IDに対して提供された情報で更新することができる。図示したとおり,クライアント114−1は個別取引情報#1及び個別収支情報#1を表示し,クライアント114−2は個別取引情報#2及び個別収支情報#3を表示し,クライアント114−3は個別取引情報#3及び個別収支情報#3を表示している。
したがって共通ID,最近の取引ID宛の情報を有する3つのメッセージを送信することができる。しかしバッチメッセージを用いることによって,メッセージを3つの別のクライアント114へ送信することができる。このようにしてクライアント114は,共通ID宛の個別情報を受信することができる。
図11は,1つの実施例によるバッチメッセージを生成するための簡易化されたフローチャート1100を示す。ステップ1102において,入力情報源210はユーザの個別情報を判定する。
ステップ1104において,個別情報のための個別ID及び共通IDを判定することができる。1つの実施例において入力情報源210は,ユーザ宛の個別情報をどこへ又はどうやって送信するかを知る必要がない。そうではなく入力情報源210は,個別情報を共通IDと関連付け,個別ID宛に送信できるバッチメッセージを生成することができる。
ステップ1106において,個別IDを有するバッチメッセージを配信ネットワーク110へ送信することができる。バッチメッセージは,上述のとおりの形式で,又は任意のほかの形式で送信することができる。したがって入力情報源210はバッチメッセージを個別ID宛に送信することができる。入力情報源210は,ユーザ宛の個別情報をどうやって又はどこへ配信するかを判定する必要はない。そうではなく配信ネットワーク110は,バッチメッセージは以降に説明するとおり配信することができる。
図12は,1つの実施例によってバッチメッセージをクライアント114へ配信する方法の簡略化したフローチャート1200を示す。ステップ1202においてバッチメッセージが入力情報源210から受信できる。ステップ1204においてクライアント114は,バッチメッセージ内に見つかった個別IDが登録されているかどうかを判定する。1つの実施例においては,クライアント114は活性化モジュール124をダウンロードし,IDを配信ネットワーク110に登録することができる。この処理は前に詳細に説明されている。ステップ1206において,個別ID宛のバッチメッセージが入力情報源210から受信されると,配信ネットワーク110はバッチメッセージを個別IDを用いてクライアント114へ配信することができる。
図13は,1つの実施例によってクライアント114においてバッチメッセージを処理する方法の簡略化したフローチャート1300を示す。ステップ1302において,バッチメッセージが配信ネットワーク110から受信できる。バッチメッセージは個別ID宛に振り向けられ,個別IDに関連付けられた好み設定によって配信することができる。例えば個別IDはIPアドレスと関連付けることができ,メッセージはIPアドレスに対応するクライアント114で受信できる。
ステップ1304において,バッチメッセージ内の共通IDが判定できる。この共通IDは複数のユーザのページ118上で見つかるものと同一のIDであってもよい。
ステップ1306において,共通ID宛の個別情報が判定できる。例えば個別情報は,個別情報であってもよいし,またクライアント114に特定のものであってもよい。
ステップ1308において,ライブオブジェクトを共通IDを用いて個別情報で更新することができる。例えばクライアント114は,共通IDに関連付けることができるページ118上のライブオブジェクトを判定することができる。ライブオブジェクトの特性値は,個別情報で更新することができる。
例えば図9を参照すると,ライブオブジェクトはページ118の最近の取引セクション902−3で見付けることができる。最近の取引IDはページ118のデータ表現内に含めることができる。このようにしてクライアント114は,場所に対応する個別情報を,ページ118のデータ表現内のID,最近の取引IDで参照されるとおりに表示する。したがって配信ネットワーク110又は入力情報源210は,ユーザのページ118の構造又はDOMを理解する必要がない。クライアント114は,最近の取引セクション902−3を,最近の取引IDの個別情報が指定するとおりに更新できるものであってよい。
また同一の共通IDは,ページ118のニュース見出しセクション902−2のように,いくつかのメッセージが広範な聴衆に向けられ(例えば個人的ではない),ほかは個別である場合にも用いることができる。例えば入力情報源210はユーザに,共通IDと,
<ニュース見出しID>,<”ニュース見出し情報”>
のようなメッセージとを用いて標準の見出しを送信することができ,また,
[<個別ID>,(<ニュース見出しID>,<”個別ニュース見出し情報”>)
のようなバッチメッセージを用いて個別メッセージを送信することができる。第1のメッセージは,ID,ニュース見出しIDを申し込んでいるどのユーザにもニュース見出し情報を送信することができ,二番目のメッセージは,個別IDと関連付けられたユーザに個別のニュース見出し情報を送信することができる。したがって,同一の共通IDを,すべてのユーザへ送信することができる標準見出しを送信するために用いることができる。また共通IDは,バッチメッセージをユーザの個別IDへ送信することによって,個別IDとしても用いることができる。個別見出しは,個別IDに関連付けられたユーザに送信することができる。情報プロバイダ210は共通IDに対して標準見出しと個別見出しとを相互に切り替えることができる。
またバッチメッセージは,準個別メッセージ,すなわち個人ではなくグループに宛てたメッセージを送信するためにも用いることができる。ちょうど個人ユーザが自分のページ118上のどこかに個別IDと関連付けられたライブオブジェクトを有することができるように,グループのメンバは,彼らのページ118上に位置するグループの個別IDのためのライブオブジェクトを有することができる。ユーザのグループにページ118のニュース見出しセクション902−2内のメッセージを送信するために,情報プロバイダ214はグループの個別ID宛に送信される次のようなバッチメッセージを用いることができる。
[<グループ個別ID>,(<ニュース見出しID>,<”個別グループ見出し情報”>)]
このメッセージはグループ個別IDと関連付けることができるので,グループのすべての(及び唯一の)メンバがこのメッセージを受信することができる。この技法は,グループのメンバが同一のページを見ていることを必要としない。そうではなくグループのメンバは,所望のどのような方法でもニュース見出しIDの情報を表示できる。
したがってバッチメッセージは,共通IDと関連付けることができる個別情報を送信するために用いることができる。しかしバッチメッセージは,ユーザに特定の個別IDに送信することができる。したがってコンテンツプロバイダ214が用いるID数を最小化することができる。しかし個別メッセージを送信する能力は,個別IDを用いることによって依然維持できる。
1つの実施例においては,「及び/又は(and/or)」で接続された要素の任意の組合せを示すことができる用語「及び/又は」を用いることがある。例えば「及び/又は」を用いる句の中の2つの語又は表現は,一つ,又は他方,又は双方を意味することができる。1つの実施例においては,用語「おおむね(substantially)」は大部分であるが指定された全体ではない,又は指定された全部を意味することができる。1つの実施例においては,用語「できる(capable of)」は構成された,適応した,能力がある,などを意味することができる。例えば,「操作を実行することができる」は,要素が操作を実行するように構成された,及び/又は操作を実行するように適応させた,を意味することができる。
本開示の実施例は,ソフトウェア,又はハードウェア,又は双方の組合せによる制御論理の形態で実装することができる。制御論理は,1つの実施例において開示された一組のステップを実行するように情報処理デバイスに指示するようになっている複数の命令として,情報記憶媒体に記憶することができる。ここに示した開示及び教示に基づいて,本技術の当業者であれば本開示を実装するほかのやり方及び/又は方法を認識するであろう。
上述の説明は例示であって,制限ではない。本開示をレビューすれば,当業者には本開示の多くの変形物が明白になるであろう。したがって本発明の範囲は,上述の説明を参照して判定するのではなく,代わりに本願の特許請求の範囲の全範囲又はその均等物を参照して判定することが望ましい。
動的コンテンツ配信ネットワークを含む環境を示す高レベルのブロック図である。 ウェブページ上のライブオブジェクトの特性値を更新するための,サーバと,情報プロバイダと,動的コンテンツプロバイダと,クライアントと,配信ネットワークとの間の対話を示す対話ダイアグラムである。 配信ネットワークが実行する多対多の対応付けを図示する高レベルのブロック図である。 スポーツの得点を含む2つの別のウェブページを示す図である。 入力情報源及び更新メッセージを生成するために利用可能なツールを示すブロック図である。 活性化モジュールの実施例によって実行されるステップを示すフローチャートである。 本発明の実施例による配信ネットワークの低レベルの様子を示すブロック図である。 クラスタ内のノードが,ゲートウェイを介して入力情報源から受信したメッセージのオブジェクトに基づく配信を行うために実行するステップを示すフローチャートである。 1つの実施例によるウェブページの例を示す図である。 1つの実施例によって配信ネットワーク110を用いて個別メッセージを配信するためのシステムを示す図である。 1つの実施例によるバッチメッセージを生成するための簡易化されたフローチャートである。 1つの実施例によってバッチメッセージをクライアントへ配信する方法の簡略化したフローチャートである。 1つの実施例によってクライアントにおいてバッチメッセージを処理する方法の簡略化したフローチャートである。

Claims (29)

  1. クライアントデバイスのために個別化された情報を用いてオブジェクトを動的に更新するためのシステムであって、
    第1識別子及び第2識別子を指定し、前記第2識別子に関連付けられたオブジェクトの特性値を更新するための個別化された情報を含む第1メッセージを入力情報源から受信し、
    レジストリにアクセスして、オブジェクトにどのクライアントデバイスが登録されているかを判定することにより、前記第1識別子によって特定される前記クライアントデバイスを識別し、
    前記オブジェクトに登録されていると判定された、前記第1識別子によって特定される前記クライアントデバイスへ、第2メッセージをネットワークを通じて配信する
    ように構成されたネットワークノードを備え、
    前記オブジェクトは、前記クライアントデバイスの少なくとも1つによるウェブページのローディングに基づいて前記クライアントデバイスの前記少なくとも1つに登録され、
    前記第2メッセージは、前記第1識別子及び第2識別子を指定し、前記第2メッセージは、前記第2識別子に関連付けられた前記オブジェクトの特性値を更新するための個別化された情報を含み、
    前記クライアントデバイスの少なくとも1つから、該少なくとも1つのクライアントデバイスがウェブページをロードした後に登録メッセージを前記ネットワークノードが受信することに応答して、前記クライアントデバイスのそれぞれに登録されたオブジェクトを示す前記レジストリが更新され、
    前記クライアントデバイスは、前記個別化された情報を用いて、前記第2識別子に関連付けられた前記オブジェクトの前記特性値に対する更新をもたらすように構成される、システム。
  2. 前記第2識別子は、複数のクライアントデバイスに共通とする、請求項1に記載のシステム。
  3. 前記ノードは更に、
    第3識別子及び第4識別子を指定し、前記第4識別子に関連付けられた第2オブジェクトの第2特性値を更新するための個別化された情報を含む第3メッセージを前記入力情報源から受信し、
    前記第3識別子によって特定される第2クライアントデバイスを識別し、
    前記第3識別子によって特定される前記第2クライアントデバイスへ、第4メッセージを前記ネットワークを通じて配信するように構成され、
    前記第4メッセージは、前記第3識別子及び第4識別子を指定し、前記第4メッセージは、前記第4識別子に関連付けられた前記第2オブジェクトの前記第2特性値を更新するための個別化された情報を含む、請求項1に記載のシステム。
  4. 前記ノードは、前記第2識別子を用いて1以上の追加クライアントデバイスへ前記個別化された情報を送信するように構成され、
    前記ノードは、前記個別化された情報を配信するために各追加クライアントデバイスに唯一の個別化された識別子を用いるように構成される、請求項1に記載のシステム。
  5. 前記第1メッセージは、1以上の追加識別子に関連付けられた1以上のオブジェクトの1以上の特性値を更新するための追加情報を含み、
    前記第2メッセージは、前記1以上の追加識別子を指定し、前記第2メッセージは、1以上の追加識別子に関連付けられた1以上のオブジェクトの1以上の特性値を更新するための前記追加情報を含む、請求項1に記載のシステム。
  6. 前記1以上の追加識別子は、前記クライアントデバイスに特定の個別化されたコンテンツ、又は複数のクライアントデバイスに共通のコンテンツに関連付けられる、請求項に記載のシステム。
  7. 前記オブジェクトは、前記クライアントデバイスにおけるデータ表現に含まれる、請求項1に記載のシステム。
  8. 前記データ表現は、ウェブページ又はアプリケーションプログラムを含む、請求項に記載のシステム。
  9. 前記第1メッセージと前記第2メッセージとが同じ個別情報を含む、請求項1に記載のシステム。
  10. クライアントデバイスのための個別化された情報を用いて、ネットワークノードにおいてオブジェクトを動的に更新するための方法であって、
    第1識別子及び第2識別子を含み、前記第2識別子に関連付けられかつ前記クライアントデバイスの少なくとも1つによるウェブページのローディングに基づいて前記クライアントデバイスの前記1つに登録されたオブジェクトの特性値を更新するための個別化された情報を含む第1メッセージを入力情報源からコンピュータ配信ネットワークを通じて受信するステップと、
    レジストリにアクセスして、オブジェクトにどのクライアントデバイスが登録されているかを判定することにより、前記第1識別子によって特定されるクライアントデバイスを識別するステップと、
    前記オブジェクトに登録されていると判定された、前記第1識別子によって特定される前記クライアントデバイスへ、第2メッセージを前記ネットワークを用いて配信するステップと、を有し、
    前記第2メッセージは、前記第1識別子及び第2識別子を指定し、前記第2メッセージは、前記第2識別子に関連付けられた前記オブジェクトの特性値を更新するための個別化された情報を含み、
    前記クライアントデバイスの少なくとも1つから、該少なくとも1つのクライアントデバイスがウェブページをロードした後に登録メッセージを前記ネットワークノードが受信することに応答して、前記クライアントデバイスのそれぞれに登録されたオブジェクトを示す前記レジストリが更新され、更に、
    前記クライアントデバイスは、前記個別化された情報を用いて、前記第2識別子に関連付けられた前記オブジェクトの前記特性値に対する更新をもたらすステップと、
    を有する、方法。
  11. 前記第1メッセージを受信するステップは、前記第2識別子を受信するステップを有し、前記第2識別子は複数のクライアントデバイスに共通とする、請求項10に記載の方法。
  12. 第3識別子及び第4識別子を含み、前記第4識別子に関連付けられた第2オブジェクトの第2特性値を更新するための個別化された情報を含む第3メッセージを前記入力情報源から受信するステップと、
    前記第3識別子によって特定される第2クライアントデバイスを識別するステップと、
    前記ネットワークを通じて前記第3識別子によって特定される前記第2クライアントデバイスへ第4メッセージを配信するステップと、を更に有し、
    前記第4メッセージは、前記第3識別子及び第4識別子を含み、前記第4メッセージは、前記第4識別子に関連付けられた前記第2オブジェクトの前記第2特性値を更新するための個別化された情報を含む、請求項10に記載の方法。
  13. 前記第2識別子を用いて1以上の追加クライアントデバイスへ個別化された情報を送信するステップを更に有し、
    前記個別化された情報を配信するために前記1以上の追加クライアントデバイスに唯一の少なくとも1つの個別化された識別子を用いるステップを更に有する、請求項10に記載の方法。
  14. 前記第1メッセージを受信するステップは、1以上の追加識別子に関連付けられた1以上のオブジェクトの1以上の特性値を更新するための追加情報を受信するステップを有し、
    前記第2メッセージを配信するステップは、前記1以上の追加識別子を前記第2メッセージにおいて用いるステップを有し、前記第2メッセージは、1以上の追加識別子に関連付けられた1以上のオブジェクトの1以上の特性値を更新するための前記追加情報を含む、請求項10に記載の方法。
  15. 前記第2メッセージを配信するステップは、1以上の追加識別子を、前記クライアントデバイスによって特定される個別化されたコンテンツ、又は複数のクライアントデバイスに共通のコンテンツに関連付ける、請求項14に記載の方法。
  16. 前記オブジェクトが、前記クライアントデバイスにおけるデータ表現に含まれるようにするステップを更に有する、請求項10に記載の方法。
  17. 前記オブジェクトがデータ表現に含まれるようにするステップは、前記オブジェクトを、ウェブページ又はアプリケーションプログラムにおいて表現させるステップを有する、請求項16に記載の方法。
  18. 前記第2のメッセージを配信するステップは、前記第1メッセージと同じ個別情報を含むメッセージを配信するステップを有する、請求項10に記載の方法。
  19. クライアントデバイスのための個別化されたコンテンツを用いてオブジェクトを動的に更新するために、ネットワークノードにおいてコンピュータ配信ネットワークを用いるための方法であって、
    第1クライアントデバイスによるウェブページのローディングに基づいて、第1の個別化された識別子及び共通識別子のための第1登録要求を前記第1クライアントデバイスから、前記コンピュータ配信ネットワークを用いて、受信するステップと、
    第2クライアントデバイスによる第2ウェブページのローディングに基づいて、第2の個別化された識別子及び前記共通識別子のための第2登録要求を前記第2クライアントデバイスから、前記コンピュータ配信ネットワークを用いて、受信するステップと、
    前記第1クライアントデバイスのための第1の個別化された情報を判定するステップと、
    前記第1の個別化された情報を前記共通識別子に関連付けるステップと、
    前記第2クライアントデバイスのための第2の個別化された情報を判定するステップと、
    前記第2の個別化された情報を前記共通識別子に関連付けるステップと、
    前記第1の個別化された識別子及び前記共通識別子を含み、前記共通識別子に関連付けられた前記第1の個別化された情報を含む第1メッセージを生成するステップと、
    前記第2の個別化された識別子及び前記共通識別子を含み、前記共通識別子に関連付けられた前記第2の個別化された情報を含む第2メッセージを生成するステップと、
    前記第1メッセージを、前記第1の個別化された識別子を用いて前記第1クライアントデバイスに、前記コンピュータ配信ネットワークを用いて、送信するステップであって、前記第1クライアントデバイスは前記第1の個別化された情報を用いて前記共通識別子と関連付けられた第1オブジェクトの特性値に対する更新をもたらすことが可能である、ステップと、
    前記第2メッセージを、前記第2の個別化された識別子を用いて前記第2クライアントデバイスに、前記コンピュータ配信ネットワークを用いて、送信するステップであって、前記第2クライアントデバイスは前記第2の個別化された情報を用いて前記共通識別子と関連付けられた第2オブジェクトの特性値に対する更新をもたらすことが可能である、ステップと、を有し、
    該第1クライアントデバイスがウェブページをロードした後に、前記第1クライアントデバイスから登録メッセージを前記ネットワークノードが受信することに応答して、前記第1クライアントデバイスに登録されたオブジェクトを示すレジストリが更新され、
    該第2クライアントデバイスがウェブページをロードした後に、前記第2クライアントデバイスから登録メッセージを前記ネットワークノードが受信することに応答して、前記第2クライアントデバイスに登録されたオブジェクトを示すレジストリが更新される、
    方法。
  20. 前記第1登録要求は、前記第1クライアントデバイスが前記ウェブページをロードした後に送信され、前記第2登録要求は、前記第2クライアントデバイスが前記第2ウェブページをロードした後に送信される、請求項19に記載の方法。
  21. 個別化されたコンテンツを用いてオブジェクトを動的に更新するように構成されたクライアントデバイスであって、
    第1識別子及び第2識別子を指定する第1メッセージを配信ネットワークから、前記クライアントデバイスにおいて、受信するように構成された論理であって、前記第1メッセージは前記第2識別子に関連付けられたオブジェクトの特性値を更新するための個別化された情報を含み、前記第1識別子は前記クライアントデバイスに特定であり、前記第2識別子は前記クライアントデバイス及び1以上の追加クライアントに共通であり、前記オブジェクトは前記クライアントデバイスによるウェブページのローディングに基づいて前記クライアントデバイスに登録される、論理と、
    前記第2識別子に関連付けられた前記オブジェクトの前記特性値を更新するための前記個別化された情報を、前記クライアントデバイスにおいて、識別するように構成された論理と、
    前記個別化された情報を用いて前記オブジェクトの前記特性値に対する更新を、前記クライアントデバイスにおいて、もたらすように構成された論理と、を有し、
    前記クライアントデバイスがウェブページをロードした後に、前記クライアントデバイスからネットワークノードに登録メッセージを送信して、前記クライアントデバイスに登録されたオブジェクトを示すレジストリを更新する、
    クライアントデバイス。
  22. 前記メッセージを受信するように構成された前記論理は、1以上の追加識別子に関連付けられた1以上のオブジェクトの1以上の特性値を更新するための追加情報を受信するように構成された論理を含む、請求項21に記載のクライアントデバイス。
  23. オブジェクトを自動的に登録するように構成された前記論理は、前記クライアントデバイスにおいてデータ表現に含まれるオブジェクトを登録するように更に構成される、請求項21に記載のクライアントデバイス。
  24. オブジェクトを自動的に登録するように構成された前記論理は、ウェブページ又はアプリケーションプログラムを含むオブジェクトを登録するように更に構成される、請求項23に記載のクライアントデバイス。
  25. クライアントデバイスのために個別化された情報を用いてオブジェクトを動的に更新するためのシステムであって、
    コンピュータ配信ネットワーク内のノードを有し、前記ノードは、
    前記クライアントデバイスの少なくとも1つから、該少なくとも1つのクライアントデバイスがウェブページをロードした後に登録メッセージを受信し、
    前記クライアントデバイスの少なくとも1つに、個別化されたIDを指定し、
    前記クライアントデバイスのそれぞれに登録された前記オブジェクトを示すレジストリを更新し、
    前記オブジェクトを指定し、かつ、前記オブジェクトの特性値を更新するためのデータを含む更新メッセージを、コンテンツプロバイダから受信し、
    前記レジストリにアクセスし、どのクライアントデバイスが前記オブジェクトの少なくとも1つを登録しているかを判定し、
    指定されたオブジェクトを登録している前記クライアントデバイスのそれぞれに、前記クライアントデバイスに関連付けられた前記個別化されたIDと、前記指定されたオブジェクトに関連付けられた複数の共通IDと、前記共通IDに関連付けられかつ前記クライアントデバイスの少なくとも1つに関連付けられた複数の個別化されたIDとをそれぞれ含むバッチ更新メッセージを生成し、
    前記オブジェクトを登録していると判定された前記クライアントデバイスに前記更新メッセージを配信するように構成される、システム。
  26. 前記ノードは、前記個別化されたIDをクライアントデバイスのグループに指定するように構成される、請求項25に記載のシステム。
  27. 前記ノードは前記共通IDをユーザの株又は債権に指定するバッチ更新メッセージを生成するように構成され、前記ノードはユーザの取引が終了すると更新メッセージを受信するように構成される、請求項25に記載のシステム。
  28. 前記ノードは、オブジェクトのための登録メッセージを送信するいくつかのクライアントデバイスと共に動作するように構成され、クライアントデバイスの数は、前記クライアントデバイスがウェブページをロードするに従ってリアルタイムで動的に変化する、請求項25に記載のシステム。
  29. クライアントデバイスのための個別化されたコンテンツを用いてオブジェクトを動的に更新するために、コンピュータ配信ネットワーク内のノードにおいて前記コンピュータ配信ネットワークを用いるための方法であって、
    複数のクライアントデバイスの少なくとも1つから登録要求を、前記ネットワークを用いて、受信するステップであって、前記登録要求は、個別化された識別子、第1共通識別子、及び第2共通識別子のための要求を含み、前記登録要求は、前記クライアントデバイスによるウェブページのローディングに基づいて送信される、ステップと、
    前記クライアントデバイスのための第1の個別化された情報を判定し、かつ、前記第1の個別化された情報を前記第1共通識別子に関連付けるステップと、
    前記クライアントデバイスのための第2の個別化された情報を判定し、かつ、前記第2の個別化された情報を前記第2共通識別子に関連付けるステップと、
    前記個別化された識別子、前記第1共通識別子、前記第1の個別化された情報、前記第2共通識別子、及び前記第2の個別化された情報を含むメッセージを生成するステップと、
    前記個別化された識別子を用いて前記クライアントデバイスに前記第1メッセージを、前記ネットワークを用いて、送信するステップであって、前記第1メッセージは、前記クライアントデバイスに、前記第1の個別化された情報を用いて前記第1共通識別子に関連付けられた第1オブジェクトの特性値を更新させ、かつ、前記第2の個別化された情報を用いて前記第2共通識別子に関連付けられた第2オブジェクトの特性値を更新させるように構成される、ステップと、を有し、
    前記クライアントデバイスがウェブページをロードした後に、前記クライアントデバイスから登録メッセージを前記ノードが受信することに応答して、前記クライアントデバイスに登録されたオブジェクトを示すレジストリが更新される、
    方法。
JP2007527921A 2004-08-17 2005-08-15 リアルタイム配信ネットワークによって個別コンテンツを配信する技法 Active JP5162240B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US60253904P 2004-08-17 2004-08-17
US60/602,539 2004-08-17
US11/205,233 2005-08-15
US11/205,233 US7930362B2 (en) 2000-12-18 2005-08-15 Techniques for delivering personalized content with a real-time routing network
PCT/US2005/029021 WO2006023459A1 (en) 2004-08-17 2005-08-15 Techniques for delivering personalized content with a real-time routing network

Publications (2)

Publication Number Publication Date
JP2008515032A JP2008515032A (ja) 2008-05-08
JP5162240B2 true JP5162240B2 (ja) 2013-03-13

Family

ID=35395017

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007527921A Active JP5162240B2 (ja) 2004-08-17 2005-08-15 リアルタイム配信ネットワークによって個別コンテンツを配信する技法

Country Status (4)

Country Link
US (3) US7930362B2 (ja)
EP (1) EP1784963B1 (ja)
JP (1) JP5162240B2 (ja)
WO (1) WO2006023459A1 (ja)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7930362B2 (en) 2000-12-18 2011-04-19 Shaw Parsing, Llc Techniques for delivering personalized content with a real-time routing network
US8505024B2 (en) 2000-12-18 2013-08-06 Shaw Parsing Llc Storing state in a dynamic content routing network
US7051070B2 (en) * 2000-12-18 2006-05-23 Timothy Tuttle Asynchronous messaging using a node specialization architecture in the dynamic routing network
EP1472620A2 (en) * 2002-02-04 2004-11-03 Mobileaware Technologies Limited Document transformation
IES20030062A2 (en) * 2002-02-04 2003-08-06 Mobileaware Technologies Ltd Document transformation
JP2008510259A (ja) * 2004-08-17 2008-04-03 ショー パーシング リミティド ライアビリティ カンパニー モジュラー型のイベントドリブン処理
WO2006023508A1 (en) * 2004-08-17 2006-03-02 Shaw Parsing Llc Techniques for upstream failure detection and failure recovery
US20070088732A1 (en) * 2005-10-13 2007-04-19 Yen-Fu Chen Dynamic string length checking for off-line processing using client-side caching of database catalog
US7840996B1 (en) 2006-08-03 2010-11-23 Juniper Networks, Inc. Remote directory browsing through a secure gateway of a virtual private network
DE502007004854D1 (de) 2007-04-17 2010-10-07 Max Planck Gesellschaft Verfahren und Vorrichtung zur chromatographischen Trennung von Komponenten mit teilweiser Rückführung von Gemischfraktionen
US20080307035A1 (en) * 2007-06-05 2008-12-11 Erik John Burckart System and Method for Off-loading Online Meeting Updates Using Forward Proxy
US8768764B1 (en) * 2007-07-18 2014-07-01 Bunchball Inc. Method and system for embedding a portable and customizable incentive application on a website
US8375051B2 (en) * 2008-01-21 2013-02-12 International Business Machines Corporation Apparatus for controlling subscriptions
JP5218323B2 (ja) * 2009-08-07 2013-06-26 富士通株式会社 中継装置及び転送ルールに関連する情報処理方法並びにプログラム
US8473965B2 (en) * 2010-04-21 2013-06-25 International Business Machines Corporation Net-timer daemon
US9253015B2 (en) * 2010-07-09 2016-02-02 Attila Technologies, Llc Transparent proxy architecture for multi-path data connections
US8738704B2 (en) * 2010-09-07 2014-05-27 Xerox Corporation Publish/subscribe broker messaging system and method
US9571566B2 (en) 2011-06-15 2017-02-14 Juniper Networks, Inc. Terminating connections and selecting target source devices for resource requests
US8504723B2 (en) * 2011-06-15 2013-08-06 Juniper Networks, Inc. Routing proxy for resource requests and resources
US9241031B2 (en) * 2011-08-02 2016-01-19 Verizon Patent And Licensing Inc. Selecting an auxiliary event-package server
JP6022215B2 (ja) 2012-05-31 2016-11-09 任天堂株式会社 投稿情報共有システム、情報処理システム、情報処理方法、プログラムおよびコンピュータプラットフォーム
JP6159511B2 (ja) * 2012-06-01 2017-07-05 任天堂株式会社 情報処理システム、情報処理装置および情報処理方法
US10104165B1 (en) * 2012-08-30 2018-10-16 Amazon Technologies, Inc. Sharing network connections to content sources
KR102024930B1 (ko) * 2012-09-25 2019-09-24 삼성전자주식회사 소스 디바이스, 라우터 및 그들의 제어 방법
US20140143646A1 (en) * 2012-11-16 2014-05-22 AppSense, Inc. Systems and methods for dynamic external document content
JP6062722B2 (ja) 2012-11-16 2017-01-18 任天堂株式会社 情報処理システム、情報処理装置、情報処理方法、およびコンピュータプログラム
US9170716B1 (en) * 2013-03-12 2015-10-27 Ca, Inc. System and method for a distributed graphical user interface
US20140279071A1 (en) * 2013-03-15 2014-09-18 Yahoo! Inc. Online advertising dashboard
US9703785B2 (en) * 2013-12-13 2017-07-11 International Business Machines Corporation Dynamically updating content in a live presentation
US9544373B2 (en) 2013-12-24 2017-01-10 Dropbox, Inc. Systems and methods for maintaining local virtual states pending server-side storage across multiple devices and users and intermittent network connections
US10067652B2 (en) 2013-12-24 2018-09-04 Dropbox, Inc. Providing access to a cloud based content management system on a mobile device
US20150180980A1 (en) 2013-12-24 2015-06-25 Dropbox, Inc. Systems and methods for preserving shared virtual spaces on a content management system
US9646103B2 (en) 2014-07-10 2017-05-09 MyMojo Corporation Client-side template engine and method for constructing a nested DOM module for a website
US20160012023A1 (en) * 2014-07-10 2016-01-14 MyMojo Corporation Self-Referencing of Running Script Elements in Asynchronously Loaded DOM Modules
US20160012147A1 (en) * 2014-07-10 2016-01-14 MyMojo Corporation Asynchronous Initialization of Document Object Model (DOM) Modules
US20160012144A1 (en) * 2014-07-10 2016-01-14 MyMojo Corporation Javascript-based, client-side template driver system
US10304078B2 (en) * 2015-06-02 2019-05-28 Francesco Rulli System and method for the transfer of funds in exchange for participation in qualifying events
CN106095850A (zh) * 2016-06-02 2016-11-09 中国联合网络通信集团有限公司 一种数据处理方法及设备
US11677822B2 (en) * 2017-10-03 2023-06-13 Servicenow, Inc. Portal management
US11068643B2 (en) * 2019-02-08 2021-07-20 Oracle International Corporation Client-side customization and rendering of web content
TWI719655B (zh) * 2019-09-27 2021-02-21 啟碁科技股份有限公司 自動設定路由器的方法和路由系統

Family Cites Families (122)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5230048A (en) * 1986-09-03 1993-07-20 Wang Laboratories, Inc. Data processing system with tree and list data structure
US5535335A (en) * 1992-12-22 1996-07-09 International Business Machines Corporation Method and system for reporting the status of an aggregate resource residing in a network of interconnected real resources
FR2702579B1 (fr) 1993-03-12 1995-05-24 Bull Sa Dispositif de communication entre au moins un client et au moins un serveur, procédé d'utilisation du dispositif et utilisation du dispositif.
US6052447A (en) * 1993-05-28 2000-04-18 Sprint Communications Company L.P. Method and apparatus for aggregating customer information for a telecommunications system
US5974457A (en) * 1993-12-23 1999-10-26 International Business Machines Corporation Intelligent realtime monitoring of data traffic
US5692193A (en) 1994-03-31 1997-11-25 Nec Research Institute, Inc. Software architecture for control of highly parallel computer systems
US6769009B1 (en) * 1994-05-31 2004-07-27 Richard R. Reisman Method and system for selecting a personalized set of information channels
US5758257A (en) * 1994-11-29 1998-05-26 Herz; Frederick System and method for scheduling broadcast of and access to video programs and other data using customer profiles
US6460036B1 (en) * 1994-11-29 2002-10-01 Pinpoint Incorporated System and method for providing customized electronic newspapers and target advertisements
US5706516A (en) * 1995-01-23 1998-01-06 International Business Machines Corporation System for communicating messages among agent processes
US5819284A (en) * 1995-03-24 1998-10-06 At&T Corp. Personalized real time information display as a portion of a screen saver
US6240451B1 (en) * 1995-05-25 2001-05-29 Punch Networks Corporation Method and apparatus for automatically disseminating information over a network
US5740549A (en) * 1995-06-12 1998-04-14 Pointcast, Inc. Information and advertising distribution system and method
US6141346A (en) * 1995-07-19 2000-10-31 Fujitsu Network Communications, Inc. Point-to-multipoint transmission using subqueues
US5878420A (en) * 1995-08-31 1999-03-02 Compuware Corporation Network monitoring and management system
US6029175A (en) * 1995-10-26 2000-02-22 Teknowledge Corporation Automatic retrieval of changed files by a network software agent
WO1997016796A1 (en) 1995-10-31 1997-05-09 Herz Frederick S M System for customized electronic identification of desirable objects
US5938733A (en) * 1996-03-08 1999-08-17 International Business Machines Corporation Object oriented representation of network requests in a client server model
US5964839A (en) * 1996-03-29 1999-10-12 At&T Corp System and method for monitoring information flow and performing data collection
US6018619A (en) * 1996-05-24 2000-01-25 Microsoft Corporation Method, system and apparatus for client-side usage tracking of information server systems
US5822543A (en) * 1996-07-08 1998-10-13 International Business Machines Corporation Gathering data handling statistics in non-synchronous data communication networks
US5987480A (en) * 1996-07-25 1999-11-16 Donohue; Michael Method and system for delivering documents customized for a particular user over the internet using imbedded dynamic content
US7249037B2 (en) * 1996-09-09 2007-07-24 Bancorp Services L.L.P. System for managing a stable value protected investment plan
US5886643A (en) * 1996-09-17 1999-03-23 Concord Communications Incorporated Method and apparatus for discovering network topology
US6745224B1 (en) * 1996-12-06 2004-06-01 Microsoft Corporation Object framework and services for periodically recurring operations
US6055493A (en) * 1997-01-29 2000-04-25 Infovista S.A. Performance measurement and service quality monitoring system and process for an information system
US6578077B1 (en) 1997-05-27 2003-06-10 Novell, Inc. Traffic monitoring tool for bandwidth management
JP3932462B2 (ja) * 1997-05-27 2007-06-20 ソニー株式会社 クライアント装置、画像表示制御方法、共有仮想空間提供装置および方法、並びに記録媒体
JP3799134B2 (ja) * 1997-05-28 2006-07-19 ソニー株式会社 システムおよび通知方法
US6490610B1 (en) * 1997-05-30 2002-12-03 Oracle Corporation Automatic failover for clients accessing a resource through a server
US5983227A (en) 1997-06-12 1999-11-09 Yahoo, Inc. Dynamic page generator
US6173406B1 (en) * 1997-07-15 2001-01-09 Microsoft Corporation Authentication systems, methods, and computer program products
US6233600B1 (en) * 1997-07-15 2001-05-15 Eroom Technology, Inc. Method and system for providing a networked collaborative work environment
US6112240A (en) * 1997-09-03 2000-08-29 International Business Machines Corporation Web site client information tracker
WO1999027556A2 (en) * 1997-11-20 1999-06-03 Xacct Technologies, Inc. Network accounting and billing system and method
US6324587B1 (en) 1997-12-23 2001-11-27 Microsoft Corporation Method, computer program product, and data structure for publishing a data object over a store and forward transport
US6449638B1 (en) * 1998-01-07 2002-09-10 Microsoft Corporation Channel definition architecture extension
US6094681A (en) * 1998-03-31 2000-07-25 Siemens Information And Communication Networks, Inc. Apparatus and method for automated event notification
US6138158A (en) * 1998-04-30 2000-10-24 Phone.Com, Inc. Method and system for pushing and pulling data using wideband and narrowband transport systems
US6363421B2 (en) * 1998-05-31 2002-03-26 Lucent Technologies, Inc. Method for computer internet remote management of a telecommunication network element
JP4634547B2 (ja) 1998-06-30 2011-02-16 株式会社東芝 リアルタイム情報配信方法
US6108703A (en) * 1998-07-14 2000-08-22 Massachusetts Institute Of Technology Global hosting system
US6314459B1 (en) 1998-08-13 2001-11-06 U.S. Philips Corporation Home-network autoconfiguration
EP0987860A3 (en) * 1998-09-16 2004-01-14 Mitsubishi Materials Corporation Radio server system
US6560611B1 (en) * 1998-10-13 2003-05-06 Netarx, Inc. Method, apparatus, and article of manufacture for a network monitoring system
US6308209B1 (en) * 1998-10-22 2001-10-23 Electronic Data Systems Corporation Method and system for measuring usage of a computer network by a network user
CN1287640A (zh) * 1998-10-28 2001-03-14 维迪科隆有限公司 用于自动聚集和投递电子个人信息或数据以及涉及电子个人信息或数据的事务处理的装置与方法
US6691165B1 (en) * 1998-11-10 2004-02-10 Rainfinity, Inc. Distributed server cluster for controlling network traffic
US6366926B1 (en) * 1998-12-31 2002-04-02 Computer Associates Think, Inc. Method and apparatus for the dynamic filtering and routing of events
US6567411B2 (en) * 1998-12-31 2003-05-20 Qwest Communications International, Inc. Method and apparatus for continuous narrowcast of individualized information over a data network
US6446257B1 (en) * 1999-02-04 2002-09-03 Hewlett-Packard Company Method and apparatus for pre-allocation of system resources to facilitate garbage collection
US6970924B1 (en) 1999-02-23 2005-11-29 Visual Networks, Inc. Methods and apparatus for monitoring end-user experience in a distributed network
US6408282B1 (en) * 1999-03-01 2002-06-18 Wit Capital Corp. System and method for conducting securities transactions over a computer network
US20020013852A1 (en) * 2000-03-03 2002-01-31 Craig Janik System for providing content, management, and interactivity for thin client devices
US6609138B1 (en) * 1999-03-08 2003-08-19 Sun Microsystems, Inc. E-mail list archiving and management
US6751663B1 (en) * 1999-03-25 2004-06-15 Nortel Networks Limited System wide flow aggregation process for aggregating network activity records
US6539427B1 (en) * 1999-06-29 2003-03-25 Cisco Technology, Inc. Dynamically adaptive network element in a feedback-based data network
US6829642B1 (en) 1999-07-01 2004-12-07 International Business Machines Corporation Method and system for automatically and optimally selecting a TN3270 server in an internet protocol network
US6789115B1 (en) * 1999-07-09 2004-09-07 Merrill Lynch & Company System for collecting, analyzing, and reporting high volume multi-web server usage
US7206805B1 (en) * 1999-09-09 2007-04-17 Oracle International Corporation Asynchronous transcription object management system
US6779042B1 (en) * 1999-09-10 2004-08-17 Ianywhere Solutions, Inc. System, method, and computer program product for enabling on-device servers, offline forms, and dynamic ad tracking on mobile devices
US6263051B1 (en) * 1999-09-13 2001-07-17 Microstrategy, Inc. System and method for voice service bureau
US7293074B1 (en) 1999-09-20 2007-11-06 Fusionone, Inc. Performing server actions using template with field that can be completed without obtaining information from a user
US6792458B1 (en) * 1999-10-04 2004-09-14 Urchin Software Corporation System and method for monitoring and analyzing internet traffic
US6484143B1 (en) 1999-11-22 2002-11-19 Speedera Networks, Inc. User device and system for traffic management and content distribution over a world wide area network
US20020010757A1 (en) * 1999-12-03 2002-01-24 Joel Granik Method and apparatus for replacement of on-line advertisements
US6418448B1 (en) * 1999-12-06 2002-07-09 Shyam Sundar Sarkar Method and apparatus for processing markup language specifications for data and metadata used inside multiple related internet documents to navigate, query and manipulate information from a plurality of object relational databases over the web
US6687729B1 (en) * 1999-12-20 2004-02-03 Unisys Corporation System and method for providing a pool of reusable threads for performing queued items of work
US6606643B1 (en) * 2000-01-04 2003-08-12 International Business Machines Corporation Method of automatically selecting a mirror server for web-based client-host interaction
US7454457B1 (en) * 2000-02-07 2008-11-18 Parallel Networks, Llc Method and apparatus for dynamic data flow control using prioritization of data requests
US6871346B1 (en) * 2000-02-11 2005-03-22 Microsoft Corp. Back-end decoupled management model and management system utilizing same
US7392281B1 (en) 2000-02-25 2008-06-24 Navic Systems, Inc. System and method for providing guaranteed delivery of messages to embedded devices over a data network
US7327683B2 (en) * 2000-03-16 2008-02-05 Sri International Method and apparatus for disseminating topology information and for discovering new neighboring nodes
AU2001253030A1 (en) * 2000-03-31 2001-10-15 Neomedia Technologies, Inc. System for accessing internet via wireless device using linkage url bar-code
US7209959B1 (en) * 2000-04-04 2007-04-24 Wk Networks, Inc. Apparatus, system, and method for communicating to a network through a virtual domain providing anonymity to a client communicating on the network
US6654804B1 (en) 2000-04-27 2003-11-25 Micron Electronics, Inc. Method and apparatus for automatic dial-up dial-down web hosting
US7725596B2 (en) * 2000-04-28 2010-05-25 Adara Networks, Inc. System and method for resolving network layer anycast addresses to network layer unicast addresses
WO2001086877A2 (en) * 2000-05-05 2001-11-15 Nomadix, Inc. Network usage monitoring device and associated method
US6918084B1 (en) * 2000-05-09 2005-07-12 Sun Microsystems, Inc. Spawning new repository spaces using information provided in advertisement schema messages
US7577834B1 (en) * 2000-05-09 2009-08-18 Sun Microsystems, Inc. Message authentication using message gates in a distributed computing environment
US6769010B1 (en) * 2000-05-11 2004-07-27 Howzone.Com Inc. Apparatus for distributing information over a network-based environment, method of distributing information to users, and method for associating content objects with a database wherein the content objects are accessible over a network communication medium by a user
US6658652B1 (en) 2000-06-08 2003-12-02 International Business Machines Corporation Method and system for shadow heap memory leak detection and other heap analysis in an object-oriented environment during real-time trace processing
DE60028018T2 (de) * 2000-06-15 2006-12-07 Telefonaktiebolaget Lm Ericsson (Publ) Verfahren und Anordnungen in einem Telekommunikationssystem
US20020091736A1 (en) * 2000-06-23 2002-07-11 Decis E-Direct, Inc. Component models
US7099926B1 (en) * 2000-07-06 2006-08-29 International Business Machines Corporation Object caching and update queuing technique to improve performance and resource utilization
US20030041110A1 (en) * 2000-07-28 2003-02-27 Storymail, Inc. System, Method and Structure for generating and using a compressed digital certificate
US7139844B2 (en) * 2000-08-04 2006-11-21 Goldman Sachs & Co. Method and system for processing financial data objects carried on broadcast data streams and delivering information to subscribing clients
US6944662B2 (en) * 2000-08-04 2005-09-13 Vinestone Corporation System and methods providing automatic distributed data retrieval, analysis and reporting services
JP2002055906A (ja) * 2000-08-08 2002-02-20 Softbank Broadmedia Corp 情報配信方法
US20020024536A1 (en) * 2000-08-25 2002-02-28 Michal Kahan Method and apparatus for information aggregation and personalized display of the aggregated information
US7685183B2 (en) * 2000-09-01 2010-03-23 OP40, Inc System and method for synchronizing assets on multi-tiered networks
US7107326B1 (en) * 2000-10-13 2006-09-12 3Com Corporation Method and system for integrating IP address reservations with policy provisioning
US20020087630A1 (en) * 2000-10-20 2002-07-04 Jonathan Wu Enhanced information and presence service
US7249197B1 (en) * 2000-10-20 2007-07-24 Nortel Networks Limited System, apparatus and method for personalising web content
US20020073165A1 (en) * 2000-10-23 2002-06-13 Pingpong Technology, Inc. Real-time context-sensitive customization of user-requested content
US6970939B2 (en) * 2000-10-26 2005-11-29 Intel Corporation Method and apparatus for large payload distribution in a network
US6725446B1 (en) * 2000-11-01 2004-04-20 Digital Integrator, Inc. Information distribution method and system
US6823359B1 (en) * 2000-11-21 2004-11-23 Pfs Trader Tools, Llc System and method for continually updating dynamic data
US20020123359A1 (en) * 2000-12-01 2002-09-05 Multiscience System Pte Limited Network for information transfer for mobile stations
US7043525B2 (en) * 2000-12-18 2006-05-09 Bang Networks, Inc. Techniques for updating live objects at clients using a dynamic routing network
US8505024B2 (en) * 2000-12-18 2013-08-06 Shaw Parsing Llc Storing state in a dynamic content routing network
US7930362B2 (en) 2000-12-18 2011-04-19 Shaw Parsing, Llc Techniques for delivering personalized content with a real-time routing network
US7127720B2 (en) 2000-12-18 2006-10-24 Charles E Cano Storing state in a dynamic content routing network
EP1346294A2 (en) * 2000-12-18 2003-09-24 Kargo, Inc. A system and method for delivering content to mobile devices
US20020078251A1 (en) * 2000-12-18 2002-06-20 Philips Electronics North America Corp. Self-determining command path architecture
US7051070B2 (en) * 2000-12-18 2006-05-23 Timothy Tuttle Asynchronous messaging using a node specialization architecture in the dynamic routing network
US7177917B2 (en) * 2000-12-27 2007-02-13 Softwired Ag Scaleable message system
US6836886B2 (en) 2001-03-19 2004-12-28 Autodesk, Inc. Method and apparatus for delivering electronic information
EP1436719A1 (en) * 2001-10-15 2004-07-14 Semandex Networks Inc. Dynamic content based multicast routing in mobile networks
US7551913B1 (en) * 2001-12-05 2009-06-23 At&T Mobility Ii Llc Methods and apparatus for anonymous user identification and content personalization in wireless communication
EP1387300A3 (en) * 2002-07-31 2006-05-24 Hewlett-Packard Development Company, L.P. Establishment of network connections
US7207043B2 (en) * 2002-12-31 2007-04-17 International Business Machines Corporation Programmatic response-time based workload distribution techniques
JP2004234123A (ja) * 2003-01-28 2004-08-19 Fujitsu Ltd マルチスレッドコンピュータ
US7159034B1 (en) * 2003-03-03 2007-01-02 Novell, Inc. System broadcasting ARP request from a server using a different IP address to balance incoming traffic load from clients via different network interface cards
US7467390B2 (en) * 2003-04-01 2008-12-16 International Business Machines Corporation Enhanced staged event-driven architecture
US7350213B2 (en) * 2003-06-19 2008-03-25 Sap Ag System and method for dynamic selection of stateless/stateful software components
US8549078B2 (en) * 2003-08-08 2013-10-01 Teamon Systems, Inc. Communications system providing load balancing based upon connectivity disruptions and related methods
GB0325691D0 (en) 2003-11-04 2003-12-10 Dotworlds Ltd Resolution of network names
US20050125557A1 (en) * 2003-12-08 2005-06-09 Dell Products L.P. Transaction transfer during a failover of a cluster controller
JP2008510259A (ja) * 2004-08-17 2008-04-03 ショー パーシング リミティド ライアビリティ カンパニー モジュラー型のイベントドリブン処理
WO2006023508A1 (en) * 2004-08-17 2006-03-02 Shaw Parsing Llc Techniques for upstream failure detection and failure recovery
AU2005298001B2 (en) 2004-10-26 2008-11-20 Olympus Corporation Endoscope shape detection device

Also Published As

Publication number Publication date
US20110161458A1 (en) 2011-06-30
WO2006023459A1 (en) 2006-03-02
US7930362B2 (en) 2011-04-19
EP1784963A1 (en) 2007-05-16
US7814225B2 (en) 2010-10-12
US20060041681A1 (en) 2006-02-23
JP2008515032A (ja) 2008-05-08
EP1784963B1 (en) 2016-05-11
US20070033293A1 (en) 2007-02-08

Similar Documents

Publication Publication Date Title
JP5162240B2 (ja) リアルタイム配信ネットワークによって個別コンテンツを配信する技法
KR101059904B1 (ko) 실시간 라우팅 네트워크로 개인화된 콘텐트를 전달하는기술
US10860567B2 (en) Storing state in a dynamic content routing network
US7043525B2 (en) Techniques for updating live objects at clients using a dynamic routing network
US7051070B2 (en) Asynchronous messaging using a node specialization architecture in the dynamic routing network
US7127720B2 (en) Storing state in a dynamic content routing network
US7861174B2 (en) Method and system for assembling concurrently-generated content
US10484509B2 (en) Anycast transport protocol for content distribution networks
US8914514B1 (en) Managing network based content
US9621406B2 (en) Remote browsing session management
US20020055956A1 (en) Method and system for assembling concurrently-generated content
WO2002021749A2 (en) Providing a personalized web page by accessing different servers
EP2727024A1 (en) Remote browsing session management
US9178955B1 (en) Managing network based content
EP1360598B1 (en) Assembling concurrently-generated personalized web pages

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080814

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100727

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100802

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110301

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110328

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110727

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110803

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

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20110826

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121217

R150 Certificate of patent or registration of utility model

Ref document number: 5162240

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20151221

Year of fee payment: 3

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