Cached content consistency management
Abstract
This record has no abstract on file.
Term
1.7 yearsleft in the term
Expires 6 June 2028.
- Priority
- Filed
- Granted
- Today
- Expires
46 claims: 13 independent, 33 dependent
- 1キャッシュを有するクライアントデバイスにおいて、キャッシュされたコンテンツの一貫性を管理するためのコンピュータ実装された方法であって、 キャッシュに格納された1以上のコンテンツアセットを更新する前に、 a)配信サーバに更新トークン値を送信 し、前記配信サーバに、前記配信サーバに関連づけられたメモリに格納された、トークン値と前記キャッシュに格納された1以上のコンテンツアセットとを対応づけた更新テーブルを前記更新トークン値にもとづいて参照させることにより、前記キャッシュに格納された1以上のコンテンツアセットを特定させる ステップと、 b)前記配信サーバからの命令に応答して前記キャッシュから1以上のコンテンツのアセットを削除するステップと、 c)前記配信サーバからの更新信号の受信に続いて前記キャッシュに格納された前記コンテンツアセットを更新するステップとを含むことを特徴とする方法。
- 2前記配信サーバから新しい更新トークン値を受信するステップと、前記更新トークン値を前記新しい更新トークン値に変更するステップとをさらに含む請求項1の方法。
- 3ステップb)は、前記1以上のコンテンツアセットを前記キャッシュから削除した後、前記1以上のコンテンツアセットを削除したことを前記配信サーバに通知するステップをさらに含む請求項1の方法。
- 4ステップb)は、前記1以上のコンテンツを前記クライアントデバイスと関連づけられたストレージデバイス上に格納された1以上の対応する置換アセットに置き換えるステップをさらに含む請求項1の方法。
- 5ステップc)は、前記キャッシュに格納された前記コンテンツアセットへの更新を求める情報リクエストを前記配信サーバに送信するステップを含む請求項1の方法。
- 6ステップc)は、1以上の更新されたコンテンツアセットを特定する情報と、前記情報リクエストに応答して前記更新されたコンテンツアセットの1以上の対応する情報源を特定する情報とを受信するステップをさらに含む請求項5の方法。
- 7ステップc)は、前記1以上の情報源にアセットリクエストを送信するステップをさらに含み、前記アセットリクエストは、前記1以上の更新されたコンテンツアセットを特定する情報を含む請求項6の方法。
- 8ステップc)は、前記アセットリクエストに応答して前記1以上の情報源から前記1以上の更新されたコンテンツを受信するステップと、前記キャッシュに格納された1以上のコンテンツアセットを前記1以上の更新されたコンテンツアセットで置き換えるステップとをさらに含む請求項7の方法。
- 9前記キャッシュされたコンテンツアセットは1以上の補助的なコンテンツアセットを含む請求項1の方法。
- 10前記補助的なコンテンツアセットは1以上の広告コンテンツアセットを含む請求項9の方法。
- 11前記キャッシュに格納された前記コンテンツアセットを用いて前記クライアントデバイスでコンテンツを表示するステップをさらに含む請求項1の方法。
- 12クライアントデバイスであって、 プロセッサと、 前記プロセッサに接続された、キャッシュを含むメモリと、 前記プロセッサによって実行されるようにメモリに具体化された命令であって、キャッシュされたコンテンツの一貫性を管理するための方法を実装するように構成された命令とを含み、 前記方法は、 a)配信サーバに更新トークン値を送信 し、前記配信サーバに、前記配信サーバに関連づけられたメモリに格納された、トークン値と前記キャッシュに格納された1以上のコンテンツアセットとを対応づけた更新テーブルを前記更新トークン値にもとづいて参照させることにより、前記キャッシュに格納された1以上のコンテンツアセットを特定させる ステップと、 b)前記配信サーバからの命令に応答して前記キャッシュから1以上のコンテンツアセットを削除するステップと、 c)前記配信サーバからの更新信号の受信に続いて前記キャッシュに格納された前記コンテンツアセットを更新するステップとを含むことを特徴とするクライアントデバイス。
- 13前記キャッシュに格納されたコンテンツアセットは1以上の補助的なコンテンツアセットを含む請求項12のクライアントデバイス。
- 14前記補助的なコンテンツアセットは1以上の広告コンテンツアセットを含む請求項13のクライアントデバイス。
- 15前記キャッシュに格納された前記コンテンツアセットを用いてコンテンツを表示するように構成されたディスプレイをさらに含む請求項12のクライアントデバイス。
- 16配信サーバにおいて、クライアントデバイス上のキャッシュに格納されたコンテンツアセットの一貫性を管理するためのコンピュータ実装された方法であって、 a)クライアントデバイスから更新トークン値を受信するステップと、 b)前記更新トークン値と前記配信サーバに関連づけられたメモリに格納された更新テーブルとを用いて前記キャッシュに格納された1以上のコンテンツアセットを特定するステップと、 c)前記キャッシュに格納された前記1以上のアセットのいずれかと、現在の更新トークン値と前記更新テーブルから決定された更新リストにおける1以上のアセットのいずれかとの間に潜在的なコンフリクトが存在するかどうかを決定するステップと、 d)ステップc)においてコンフリクトが存在すると判定されたならば、前記キャッシュから1以上の潜在的にコンフリクトするアセットを削除することによるコンフリクト解消を決定し、その1以上のコンフリクトするアセットを削除するように前記クライアントデバイスに命令を送信するステップと、 e)ステップc)において潜在的なコンフリクトが存在しないと判定されたならば、前記クライアントデバイスに前記コンテンツアセットの更新に進むように通知するステップとを含むことを特徴とする方法。
- 17ステップd)またはステップe)は、前記クライアントデバイスに前記現在の更新トークン値を送信するステップをさらに含む請求項16の方法。
- 18ステップd)は、前記潜在的にコンフリクトするアセットが前記キャッシュから削除された旨の確認を前記クライアントデバイスから受信した後、前記クライアントデバイスに前記コンテンツアセットの更新に進むように通知するステップをさらに含む請求項16の方法。
- 19前記コンテンツアセットは1以上の補助的なコンテンツアセットを含む請求項16の方法。
- 20前記補助的なコンテンツアセットは1以上の広告コンテンツアセットを含む請求項19の方法。
- 21ステップd)またはe)の後、前記クライアントデバイスにコンテンツアセット更新情報を送信するステップをさらに含む請求項16の方法。
- 22前記コンテンツアセット更新情報は、1以上の更新されたコンテンツアセットを特定する情報と、前記更新されたコンテンツアセットの1以上の対応する情報源を特定する情報とを含む請求項21の方法。
- 23ステップd)またe)の後、前記クライアントデバイスからの、前記キャッシュに格納された前記コンテンツアセットへの更新を求める情報リクエストに応答して、前記クライアントデバイスにコンテンツアセット更新情報を送信するステップをさらに含む請求項16の方法。
- 24ステップc)は、ステップb)で特定されたコンテンツアセットを、1以上のコンフリクトルールを用いて前記更新リストの前記アセットと比較するステップを含む請求項16の方法。
- 25前記コンフリクトルールは、2以上のコンフリクトするコンテンツアイテムに対するアセットが実質的に同時に前記キャッシュに格納されるのを防ぐように構成される請求項24の方法。
- 26前記コンフリクトルールは、前記クライアントデバイスが2以上のコンフリクトするコンテンツアイテムを表示するのを防ぐように構成される請求項24の方法。
- 27前記コンフリクトルールは、前記クライアントデバイスが契約違反にある2以上のコンフリクトするコンテンツアイテムを表示するのを防ぐように構成される請求項24の方法。
- 28配信サーバであって、 プロセッサと、 更新テーブルが具体化されたメモリと、 前記プロセッサによって実行されるようにメモリ内に具体化された1以上の命令であって、クライアントデバイス上のキャッシュに格納されたコンテンツアセットの一貫性を管理するための方法を実装するように構成された命令とを含み、 前記方法は、 a)クライアントデバイスから更新トークン値を受信するステップと、 b)前記更新トークン値と前記配信サーバに関連づけられたメモリに格納された更新テーブルとを用いて前記キャッシュに格納された1以上のコンテンツアセットを特定するステップと、 c)前記キャッシュに格納された前記1以上のアセットのいずれかと、現在の更新トークン値と前記更新テーブルから決定された更新リストにおける1以上のアセットのいずれかとの間に潜在的なコンフリクトが存在するかどうかを決定するステップと、 d)ステップc)においてコンフリクトが存在すると判定されたならば、前記キャッシュから1以上の潜在的にコンフリクトするアセットを削除することによるコンフリクト解消を決定し、その1以上のコンフリクトするアセットを削除するようにクライアントデバイスに命令を送信するステップと、e)ステップc)において潜在的なコンフリクトが存在しないと判定されたならば、前記クライアントデバイスに前記コンテンツアセットの更新に進むように通知するステップとを含むことを特徴とする配信サーバ。
- 29前記コンテンツアセットは、1以上の補助的なコンテンツアセットを含む請求項 28 の配信サーバ。
- 30前記補助的なコンテンツアセットは1以上の広告コンテンツアセットを含む請求項 29 の配信サーバ。
- 31前記更新テーブルは複数のアセットリストを含み、各アセットリストは、対応する更新トークン値において前記クライアントデバイスに送信すべき1以上のアセットを特定する請求項 28 の配信サーバ。
- 32メモリ内に具体化された1以上のコンフリクトルールをさらに含み、ステップc)は、ステップb)において特定されたコンテンツアセットを、前記1以上のコンフリクトルールを用いて前記更新リストの前記アセットと比較するステップを含む請求項 28 の配信サーバ。
- 331以上のクライアントデバイスと、ネットワークを介して前記1以上のクライアントデバイスと通信するように構成された配信サーバとを含むシステムにおいて、クライアントデバイス上のキャッシュに格納されたコンテンツアセットの一貫性を管理するための方法であって、 a)前記クライアントデバイスに対する更新トークン値を前記配信サーバに送信するステップと、 b)前記更新トークン値と前記配信サーバに関連づけられたメモリに格納された更新テーブルとを用いて前記キャッシュに格納された1以上のコンテンツアセットを特定するステップと、 c)前記キャッシュに格納された前記1以上のアセットのいずれかと、現在の更新トークン値と前記更新テーブルから決定された更新リストにおける1以上のアセットのいずれかとの間に潜在的なコンフリクトが存在するかどうかを前記配信サーバが決定するステップと、 d)ステップc)においてコンフリクトが存在すると判定されたならば、前記キャッシュから1以上の潜在的にコンフリクトするアセットを削除することによるコンフリクト解消を決定し、その1以上のコンフリクトするアセットを削除するように前記配信サーバから前記クライアントデバイスに命令を送信し、前記配信サーバからの前記命令に応答して前記クライアントデバイスが前記キャッシュから1以上の潜在的にコンフリクトするアセットを前記キャッシュから削除するステップと、 e)ステップc)において潜在的なコンフリクトが存在しないと判定されたならば、前記配信サーバから前記クライアントデバイスに、前記クライアントデバイスが前記コンテンツアセットの更新に進むことを許可するように構成された更新信号を送信するステップと、 f)前記キャッシュに格納された前記コンテンツアセットを更新するステップとを含むことを特徴とする方法。
- 34ステップd)またはe)は、前記配信サーバから前記クライアントデバイスに前記現在の更新トークン値を送信するステップと、前記更新トークン値を前記現在の更新トークン値に変更するステップとをさらに含む請求項33の方法。
- 35ステップd)は、前記キャッシュから前記1以上のコンテンツアセットを削除した後、前記クライアントデバイスから前記配信サーバに、前記1以上のコンテンツアセットを削除した旨を示すメッセージを送信するステップをさらに含む請求項33の方法。
- 36ステップd)は、前記1以上のコンテンツを、前記クライアントデバイスに関連づけられたストレージデバイス上に格納された1以上の対応する置換アセットで置き換えるステップをさらに含む請求項33の方法。
- 37ステップf)は、ステップd)またはe)の後、前記クライアントデバイスから前記配信サーバに前記キャッシュに格納された前記コンテンツアセットへの更新を求める情報リクエストを送信するステップを含む請求項33の方法。
- 38ステップf)は、前記情報リクエストに応答して、前記配信サーバから前記クライアントデバイスにコンテンツアセット更新情報を送信するステップをさらに含む請求項37の方法。
- 39ステップf)は、前記コンテンツアセット更新情報を含むアセットリクエストを前記1以上の情報源に送信するステップをさらに含む請求項38の方法。
- 40前記キャッシュに格納された前記コンテンツアセットを用いて前記クライアントデバイスでコンテンツを表示するステップをさらに含む請求項33の方法。
- 41ステップd)またはe)は、前記配信サーバから前記クライアントデバイスに前記現在の更新トークン値を送信するステップをさらに含む請求項33の方法。
- 42ステップd)は、前記潜在的にコンフリクトするアセットを前記キャッシュから削除した旨の確認を前記配信サーバが前記クライアントデバイスから受信した後、前記配信サーバから前記クライアントデバイスに前記更新信号を送信するステップをさらに含み、前記メッセージは、前記クライアントデバイスが前記コンテンツアセットの更新に進むように命令するように構成される請求項33の方法。
- 43前記コンテンツアセットは1以上の補助的なコンテンツアセットを含む請求項33の方法。
- 44前記補助的なコンテンツアセットは1以上の広告コンテンツアセットを含む請求項 43 の方法。
- 45ステップc)は、ステップb)で特定されたコンテンツアセットを、1以上のコンフリクトルールを用いて前記更新リストの前記アセットと比較するステップを含む請求項33の方法。
- 46キャッシュされたコンテンツの一貫性管理システムであって、 更新テーブルが具体化されたメモリを有する配信サーバと、 キャッシュを有するクライアントデバイスとを含み、 前記クライアントデバイスと前記配信サーバは、ネットワークを介して互いに通信するように構成され、 前記配信サーバは、 1)クライアントデバイスから更新トークン値を受信するステップと、 2)前記更新トークン値と前記更新テーブルとを用いて前記キャッシュに格納された1以上のコンテンツアセットを特定するステップと、 3)前記キャッシュに格納された前記1以上のアセットのいずれかと、現在の更新トークン値と前記更新テーブルから決定された更新リストにおける1以上のアセットのいずれかとの間に潜在的なコンフリクトが存在するかどうかを決定するステップと、 4)ステップ3)においてコンフリクトが存在すると判定されたならば、前記キャッシュから1以上の潜在的にコンフリクトするアセットを削除することによるコンフリクト解消を決定し、その1以上のコンフリクトするアセットを削除するように前記クライアントデバイスに命令する削除命令を前記クライアントデバイスに送信するステップと、 5)ステップ3)において潜在的なコンフリクトが存在しないと判定されたならば、前記クライアントデバイスに前記コンテンツアセットの更新に進むように命令する更新信号を前記クライアントデバイスに送信するステップとを実行するように構成され、 各クライアントデバイスは、 a)配信サーバに前記更新トークン値を送信するステップと、 b)前記配信サーバからの削除命令に応答して前記キャッシュから1以上のコンテンツアセットを削除するステップと、 c)前記配信サーバからの更新信号を受信すると、前記キャッシュに格納された前記コンテンツアセットを更新するステップとを実行するように構成されることを特徴とするシステム。
Independent claims46
51 paragraphs, as filed
[Cross-reference of related applications] This application claims the priority benefit of US Patent Application No. 11 / 759,155 by the same applicant filed June 6, 2007, the entire disclosure of which is incorporated herein by reference.
This application relates to US Patent Application No. 11 / 759,143 by the same applicant filed June 6, 2007, the entire disclosure of which is incorporated herein by reference.
[Technical field] The present invention relates to electronic computing, especially to managing cached content in an interactive environment.
With the growth of the Internet and the rise of interactive entertainment such as video games, there are more opportunities to advertise in video games. Initially, ads were statically placed within the video game. As video game consoles with internet connectivity became available, it became possible to update the advertisements that appeared in video games. This paves the way for game console manufacturers and video game makers to make money by selling advertising space in video games to advertisers. Advertising content often changes based on the nature of video game titles. On top of that, one ad space in the game is more valuable than another. In addition, advertising companies change over time as one ad phases out and another phases in. Therefore, it is useful to have a system that determines which ads should be placed in a particular space for a particular video game over a particular period of time.
<p> Conventionally, a video game machine connects with a distribution server that determines an advertisement to be placed in a specific advertisement space in the game in consideration of the game title, date and time, year and month, and the like. Often real-world advertising content is stored on a separate server known as the content server. In such cases, the distribution server orders the game console to contact a particular content server and request one or more content files. This content file is referred to herein as a content asset that video game consoles can use to generate content for a particular advertising space. Then, the game machine can directly contact the content server and request the specified content asset. These content assets are temporarily stored in a cache on the video game console to facilitate fast updates of the content in the advertising space within the video game.</p><p> Advertisers often require some form of exclusivity in their ads. Such exclusivity is often agreed in contracts with media companies responsible for the delivery of advertising content. An exclusive contract between an advertiser and a media company can prevent advertisements that promote the sale of the advertiser's competitors' products or services from appearing on a particular media channel at a particular time. As an example, this means that competitors' ads will not appear in the same frame of the video game. Many substitutions are possible in this example.</p><p> Due to the dynamic nature of information distribution over computer networks, advertisements displayed in video games may be updated fairly quickly. When implementing updates, it is desirable to avoid conflicts between ads or other content.</p><p> Embodiments of the present invention have been considered in this context.</p>
<p> A computer-implemented method for managing the consistency of cached content on client devices that have a cache, a) updating to the distribution server before updating one or more content assets stored in the cache. Following the steps of transmitting the token value, b) deleting one or more content assets from the cache in response to a command from the distribution server, and c) receiving an update signal from the distribution server. A method comprising: updating the content asset stored in a cache.</p>
<figref num="1">It is the schematic of the auxiliary content distribution system which concerns on embodiment of this invention.</figref><figref num="2A">It is a flow diagram explaining the problem of cache consistency management in the prior art.</figref><figref num="2B">It is a flow diagram explaining the example of the consistency management of the cached content which concerns on embodiment of this invention.</figref><figref num="3">It is a block diagram explaining the client device which concerns on embodiment of this invention.</figref><figref num="4">It is a block diagram explaining the distribution server which concerns on embodiment of this invention.</figref>
The detailed description below includes many specific details for explanation, but many changes and modifications to them are also included in the technical scope of the present invention by anyone skilled in the art. You will understand. Therefore, preferred embodiments of the invention described below are described without compromising or limiting the universality of the claimed invention.
As shown in FIG. 1, the cached content consistency management system 100 includes one or more client devices 102 and one or more distribution servers 104. The client device 102 and the distribution server 104 are configured to communicate over the network 101. As an example, without loss of generality, network 101 is a two-way digital communication network. The network 101 may be a local area network or a wide area network such as the Internet. The network 101 may be implemented using an infrastructure such as a CATV bidirectional network, ISDN or xDSL high speed network to enable network connectivity that implements the embodiments of the present invention.
As an example, but not limited to, the client device 104 may be a game console. Examples of commercial game consoles include Microsoft's Xbox (trademark or registered trademark) in Washington Redmond, Nintendo Wii (trademark or registered trademark) in Kyoto, Japan, and Sony Computer Entertainment's PlayStation 3 in Tokyo, Japan. Includes PlayStation (trademark or registered trademark) devices. Xbox (Trademark or Registered Trademark) is a registered trademark of Microsoft in Redmond, Washington. PlayStation (trademark or registered trademark) is a registered trademark of Sony Computer Entertainment Inc. in Tokyo, Japan. Wii (trademark or registered trademark) is a registered trademark of Nintendo in Kyoto, Japan. Alternatively, the client device may be any other type of device having network capabilities capable of receiving and utilizing auxiliary content. Such devices include, but are not limited to, mobile phones, personal computers, laptop computers, television set-top boxes, mobile internet access devices, mobile email devices, mobile video game devices, personal digital assistants, digital digital assistants. A music player and the like are included. Further, the client device 104 may include the functions of two or more devices in the examples listed above.
The term content here refers to images, videos, text, sounds, etc. presented on a display in a simulated environment. Such content includes content that is an integral part of the simulated environment, such as backgrounds, avatars, and simulated objects used within the simulated environment. Content may also include auxiliary content that is not essential to the simulated environment, but may appear with it. Here, the term auxiliary content means content provided free of charge to the client device 104 in the form of, for example, text, still images, videos, animations, sounds, applets, 3D content, and the like. As an example, but not limited to, in the context of an interactive environment, for example, video games, 3D content may include information about images or simulations involving 3D. Examples of such information extend from static geometry to partial or overall game levels with expressive interactivity of the game title itself. Examples of ancillary content include advertising, public service announcements, software updates, interactive game content, and more.
Content, including auxiliary content, is generated from content assets by client devices. The term "content asset" refers to information in a format readable by a client device that can be used by the client device to generate content. Content, including auxiliary content, and corresponding content assets may be generated "on the fly," that is, during a session in a simulated environment.
Auxiliary content appears at one or more predetermined locations or times in the simulated environment generated by the client device 104. Here, the term "simulated environment" refers to text, still images, videos, animations, sounds, etc. generated by client device 104 during user-initiated operations on client device 104. As an example, but not limited to, a simulated environment is a scene in a video game represented by text, still images, moving images, animations, and sounds presented to the user by the client device 104.
Client device 104 retrieves auxiliary content assets from one or more content servers 108. The delivery server 106 determines which particular item of auxiliary content belongs to a particular space or time in the simulated environment generated by the client device 104. Each distribution server 106 is responsible for delivering auxiliary content to client devices 104 in different regions.
For example, in an implementation where the cached content includes advertising content, the system may optionally include one or more content servers 106, one or more reporting servers 108, and one or more campaign management servers 110. In some implementations, the system may optionally include an arbitration server 112 to facilitate the delivery of content. Each client device 102 is configured to submit input to the arbitration server 112. The arbitration server 112 acts as an intermediary between the client device 102 and the distribution server 104. As an example, the arbitration server 112 determines which distribution server 104 handles the distribution of auxiliary content to client devices in a particular region. The arbitration server 112 is configured to receive an input from the client device 102 and send contact information to the distribution server 104 to the client device 102 in response to the input. Each client device 102 is further configured to receive contact information from the arbitration server 112 and to contact one or more distribution servers 104 using the contact information with a request for auxiliary content information for the auxiliary content space. Will be done. The distribution server 104 is configured to serve requests for ancillary content information from one or more client devices 102. The arbitration server 112 has an existing trust relationship with each client device 104. As an example, a trust relationship may be established using public key cryptography, also known as asymmetric cryptography. The management of a plurality of distribution servers 104 may be delegated by utilizing the existing trust relationship between the client device 102 and the arbitration server 112. The use of arbitration servers in conjunction with auxiliary content distribution is common to all assignees, US Patent Application No. 11 / 759,143, James E. Marr et al.
In one embodiment, system 100 further includes one or more reporting servers 108 connected to network 101. Client device 102 reports user activity with respect to auxiliary content. For example, in the case of auxiliary content in the form of an advertisement, the client device 102 is configured to report to the reporting server 108 information about whether the advertisement was displayed and whether it impressed the user. An example of such an impression report is described, for example, in U.S. Patent Application No. 11 / 241,229, filed on September 30, 2005, with common assignees, the entire contents of which are incorporated herein by reference. .. In certain embodiments, the arbitration server 112 also provides the URL of the reporting server 108 and an encryption key for communicating with the reporting server.
Figure 2A illustrates the problem of managing cached content that is often encountered in the prior art. In this example, the client device 102 has a cache 122 containing content assets for the first and second content spaces Sp1 and Sp2 in the simulated environment.
Here, the term cache generally refers to a special high-speed storage mechanism. As an example, the cache 122 may be a reserved section of main memory associated with the client device 102, or it may be an independent high speed storage device associated with the client device. Initially, cache 122 contains asset A for the first space Sp1 and asset B for the second space Sp2. Content assets stored in cache 122 are updated from time to time. To update the content asset, the client device 102 contacts the distribution server on the network 101 with a request for asset information, as shown by reference numeral 202. The distribution server responds to the request with asset information, as indicated by reference numeral 204. Asset information identifies the update asset and the source of the update asset, for example by filename or other identifier. The source, eg Content Server 106, is identified by a network address, eg URL. In this example, the distribution server determines that the client device 102 should get the asset C203 from the content server 106 at the address CDN. The distribution server relays this information to the client device 102, as indicated by reference numeral 204. As indicated by reference numeral 206, the client device 102 uses this information to send a request 205 for asset C203 to the content server 106 at the address CDN. In response, content server 106 sends asset C203 to the client device. The client device then replaces asset A with asset C203 in cache 122, as indicated by reference numeral 208.
After that, the client device 102 requests the asset information for the content space Sp2 from the distribution server 104 as indicated by reference numeral 210. In this example, the distribution server sends a response indicating that the asset D207 can be retrieved from the content server 106 at the network address CDN. At reference numeral 214, the client device sends a request 209 for asset D207. If the client device does not receive a reply to a request for asset information for a content space, it is often configured to use the cached asset to generate content for that space. However, the client device 102 generally has no way of determining whether the cached assets are consistent with each other. For example, if Asset B and Asset C were used and displayed at code 216, they would generate conflicting ads. However, in order for these two or more cached content assets to determine to generate a conflict, the client device 102 would have to be programmed with rules governing the conflicting content. The number of potentially conflicting assets and conflict reels is so large that it is cumbersome and difficult to implement such a solution. The difficulty is exacerbated if the rules change over time and the rules have to be delivered to a large number of client devices on a regular basis.
In some cases, the client device puts benign content assets on the mass storage device 124 that can be displayed when other content is not available (for example, when other content assets are not stored in cache 122). May be stored. Such assets generate benign content that is preconfigured so that it does not conflict with other content. For example, using benign content assets E and F will never generate conflicting ads. For example, client device 102 can use assets E and F to generate advertisements promoting the manufacturer of client device 102. Manufacturers have previously agreed with other advertisers that such advertisements will not cause conflicts. Unfortunately, such advertising does not generate advertising revenue for client device manufacturers. Therefore, it is advisable to avoid displaying benign assets unless absolutely necessary.
The above example illustrates a common problem with cache consistency management. The nature of this problem, as can be seen from the example above, is that content assets cached on client devices become inconsistent due to frequent updates and intermittent interruptions in network communications. Cached content assets become inconsistent in many different ways. For example, the content produced by a cached content asset may simply expire or no longer be valid.
One situation where cached content assets are inconsistent occurs when the download is interrupted by an application such as a game. For example, many games give a fixed amount of time to download new assets. For example, a game may only allow new assets to be downloaded while loading the next level of game content from a high-capacity device such as a Blu-ray (trademark or registered trademark) drive. Once all game content has been downloaded, the game may interrupt the download of assets (the client library may allow the game to perform this interruption). This interrupts the download of the asset, whether it is complete or not. Since the download speed of the Internet connection varies greatly, different client devices 102 have different times to download the latest assets. All client devices 102 of the same type, eg, a particular model of a particular game console, typically load game content assets at the same speed, but one client device succeeds in downloading all new assets. On the other hand, other client devices may only download some of the latest assets before interrupting.
Cached content assets are also inconsistent when the network load on distribution server 104 or content server 106 is heavy. When the server is overloaded with requests from client device 102, the server appears to be unavailable to a particular client device 102. As a result, a request for content information from the distribution server 104 or a request for an asset from the content server 106 may randomly fail due to the high network load on the server.
In order to overcome such a problem, an embodiment of the present invention implements an embodiment in which a distribution server is used to manage the consistency of content assets cached on a client device. As an example, as shown in FIG. 2B, the distribution server 104 has an update table 126 stored in memory. The update table is configured to keep track of which content assets are associated with different content spaces in each update. Associate the token value with each update. Each time the content is updated on the client device 102, the distribution server sends the token value associated with the update to the client device. The update table 126 contains information for the distribution server 104 to determine from the update token value which content assets are currently stored in the client device cache 122. For example, the update table contains multiple lists with each update token value indicating which content assets are cached for a particular content space.
As an example, update table 126 is configured as shown in Table 1 below.
<tables num="1"><img file="JP5474776B2_D0001.tif" /></tables>
The distribution server 104 stores a set of conflict rules 128 in memory. Conflict rule 128 is configured to prevent assets for two or more conflicting content items from being stored in the client device cache 122 at virtually the same time. In addition, conflict rule 128 is configured to prevent client device 102 from displaying more than one conflicting content item. As an example, the rule is implemented by looking up one or more conflict tables configured as shown in Table 2 below.
<tables num="2"><img file="JP5474776B2_D0002.tif" /></tables>
According to the example described in Table 2, Asset C and Asset E conflict. All other combinations of assets in the cache are allowed. For simplicity, let's assume that the asset does not conflict with itself. Explain the concept of conflict between asset pairs using a two-dimensional cross-reference table. This concept can be generalized to a 3D or higher cross-reference table to build conflict rules for combinations of 3 or more assets.
The conflict rule for system 100 is managed by the campaign management server 110 and distributed to the distribution server 104 on the network 101. The campaign management server 110 also periodically updates the conflict rules and sends such updates to the distribution server over network 101.
According to an embodiment of the present invention, the consistency of the content assets stored in the cache 122 on the client device 102 is managed as described in FIG. 2B. The client device 102 and the distribution server 104 are configured, for example, by appropriate programming to perform cache consistency management before the client device 102 updates the content assets stored in its cache 122. Specifically, the client device 102 is programmed to implement a series of client-side operations 220, and the distribution server 104 is programmed to implement a series of distribution-side operations 24. Specifically, after connecting to the distribution server 104 with reference numeral 221 the client device 102 transmits the update token 223 to the distribution server 104 as shown by reference numeral 222. The update token 223 is associated with a value that indicates the latest update that the client device 102 has performed or tried to perform. Next, the distribution server 104 can identify one or more content assets stored in the cache 122 using the update token value 223 and the update table 126, as shown by reference numeral 242. As an example, if client device 102 sends token 223 with a token value of 2, distribution server 104 looks up update table 126 and cache 122 puts asset D to content space Sp1 and into content space Sp2. On the other hand, it is determined that the asset C is possessed.
The distribution server 104 is then latent between any of the assets stored in cache 122 and any of the assets in the update list determined from the token value for the current update and the update table 126, as shown by reference numeral 244. Determine if there is a specific conflict. If it is determined that a conflict exists, the distribution server 104 at reference numeral 246 determines to resolve the conflict by deleting one or more potentially conflicting assets from the cache 122. The distribution server 104 then sends an instruction 248 to the client device 102 to delete one or more conflicting assets. Instruction 248 contains the current update token value, and client device 102 resets its update token value to this update value. In response to instruction 248, client device 102 removes potentially conflicting content assets from cache 122, as indicated by reference numeral 224. The client device 102 notifies the distribution server 104 that the deletion is completed as shown by reference numeral 226. In response, the distribution server 104 sends an update signal 250 to the client device 102. The update signal 250 is configured to allow the client device 102 to proceed to update the content asset in cache 122, for example, in the manner described above with respect to FIG. 2B. If it is determined that there are no potential conflicts, the distribution server 104 simply sends an update signal 250 to the client device 102. The update signal 250 optionally includes the current token value, and the client device 102 resets its update token value accordingly.
As an example, assume that the current update token value for distribution server 104 is token value 4. If update table 126 is configured as shown in Table 1, this update puts asset E for content space Sp1 and asset A for content space Sp2 in cache 122. To determine that If the conflict rule 128 is configured as shown in Table 2, for example, the distribution server 104 conflicts with asset C and asset E from conflict rule 128, and asset D is replaced with asset E, but asset C becomes asset A. Determine if there is a potential conflict if not replaced. Therefore, instruction 248 commands client device 102 to remove asset C from cache 122.
The benefits of managing cache consistency in this way can be seen in the update example that follows cache consistency management. With reference to FIG. 2B again, the client device 102 sends a request for asset information to the distribution server 104 as shown by reference numeral 228. The distribution server 104 responds to the request with the asset information as shown by reference numeral 252. The asset information identifies the update asset and the source of the update asset, for example, as described above. As an example, the distribution server determines from the update table 126 and the current update token value 4 that the client device 102 should get the asset E253 from the content server 106 at the address CDN. The distribution server 104 relays this information to the client device 102 as shown by reference numeral 252. As shown in reference numeral 230, the client device 102 then uses this information to send a request for asset E253 to the content server 106 at address CDN. In response, content server 106 sends asset E253 to client device 102. Client device 102 replaces asset D with asset E253 in cache 122 as shown by reference numeral 258. After that, the client device 102 requests the asset information for the content space Sp2 from the distribution server 104 as shown by the reference numeral 232. In this example, the distribution server sends a response indicating that asset A257 can be retrieved from content server 106 at network address CDN. At sign 234, the client device sends request 259 for asset A257. Even if client device 102 does not receive asset A, for example due to a network outage, the possibility of a conflict between asset C and asset E is that it has previously deleted asset C from cache 122 at sign 224. Can be avoided by.
As mentioned above, client device 102 is configured to replace content assets deleted from cache 122 with benign assets from mass storage 124. This ensures that the client device 102 caches some content for display in the content space in the event of a network outage. For example, after deleting asset C at sign 224, client device 102 can optionally copy benign asset G from mass storage device 124 to cache 122 for content space Sp2. The client device 102 can then display the contents of the content spaces Sp1 and Sp2 generated using the assets E and G, respectively, as shown by reference numeral 236.
As an example, the client device 102 of system 100 is configured as shown in FIG. FIG. 3 is a block diagram illustrating components of the client device 300 according to the embodiment of the present invention. As an example, without compromising generality, the client device 300 is a computer system such as a personal computer, video game machine, personal digital information device, or other digital device suitable for carrying out embodiments of the present invention. It is implemented as. Client device 300 includes a central processing unit (CPU) 305 configured to run software applications and optionally an operating system. CPU305 may include one or more processor cores. Although not limited as an example, the CPU 305 may be a parallel processor module such as a cell processor. An example of a cell processor architecture is described in detail in "Cell Broadband Engine Architecture". It is copyrighted by IBM, Sony Computer Entertainment, and Toshiba on August 8, 2005, and a copy can be downloaded from http://cell.scei.co.jp/. The whole is incorporated here by reference.
Memory 306 is connected to CPU 305, which stores applications and data used by CPU 305. The memory 306 may be in the form of an integrated circuit such as RAM, DRAM, or ROM. The computer program 303 is stored in memory 306 in the form of instructions that can be executed on processor 305. The instructions in program 303 are configured to implement, for example, a step in the method of auxiliary content delivery as described above for client device step 210 in FIG. As an example, program 303 is an instruction to contact the arbitration server, receive the contact information of the distribution server from the arbitration server, and contact the distribution server with a request for auxiliary content information for the auxiliary content space in the interactive environment. including. Program 303 works in conjunction with instructions that are configured to implement an interactive environment. As an example, such instructions are part of a main program 307, such as a video game program. The client device 300 is configured to transmit the region identifier for the client device 300 and the information corresponding to the title of the video game program to the arbitration server by proper programming of the program 303. The main program may call program 303 as a function or subroutine. Alternatively, the main program 307 may be a program for interacting with the virtual world. The virtual world is described in U.S. Patent Applications 11 / 682,281, 11 / 682,284, 11 / 682,287, 11 / 682,292, 11 / 682,298, and 11 / 682,299, which the assignees have in common. It has been, and all its contents are incorporated here by reference.
The client device 300 may also include known support functions 310 such as input / output (I / O) device 311, power supply (P / S) 312, clock (CLK) 313 and cache 314. The client device 300 may further include a storage device 315 that provides non-volatile storage for applications and data. Storage device 315 may be used as temporary or long-term storage for auxiliary content asset 316 downloaded from the content server. As an example, the storage device 315 is a fixed disk drive, removable disk drive, flash memory device, tape drive, CD-ROM, DVD-ROM, Blu-ray (trademark or registered trademark), HD-DVD, UMD, and other optical storage devices. It may be.
Cache 314 is an easily accessible memory hardware component that is detached from and distinguished from main memory 306. In such cases, cache 314 is often referred to as the hardware cache. Memory 306 may also include a reserved, easily accessible area 309, often referred to as a software cache. Content asset 317 may be stored in such a software cache. As an example, the content asset 317 may be an ancillary content asset such as an advertising content asset. If, for example, the storage device 315 is a disk drive or other storage device that can overwrite stored data, the software cache is implemented using the specially reserved space of the storage device 315. .. Although the content asset 317 is shown to be stored in the software cache 309 in main memory, in embodiments of the present invention the content asset 317 may be stored in the hardware cache 314 and the storage device 315. It may be stored in the software cache implemented using it.
One or more user input devices 320 may be used to convey user input from one or more users to the computer client device 300. For example, one or more user input devices 320 may be connected to the client device 300 via the input / output device 311. Examples of suitable input devices 320 include keyboards, mice, joysticks, touchpads, touch screens, light pens, still / video cameras, and / or microphones. The client device 300 may include a network interface 325 that aids in communication over the electronic communication network 327. Network interface 325 may be configured to implement wired or wireless communication over local area networks and wide area networks such as the Internet. The client device 300 can use one or more message packets 326 on network 327 to send and receive requests for data and / or files.
The client device 300 further includes a graphics subsystem 330 with a graphics processing unit (GPU) 335 and graphics memory 340. The graphics memory 340 includes a display memory (eg, a frame buffer) used to store pixel data for each pixel of the output image. The graphics memory 340 may be integrated in the same device as the GPU 335, may be coupled to the GPU 335 as a separate device, or may be implemented in the memory 306. Pixel data is provided directly from CPU 305 to graphics memory 340. Alternatively, the CPU 305 provides the GPU 335 with data and instructions that determine the desired output image. The GPU 335 uses it to generate pixel data for the output image. GPU 335 uses content asset 317 stored in software cache 309 or hardware cache 314 to generate some of the content in such an output image. The data and instructions that determine the desired output image are stored in the memory 310 and the graphics memory 340. In certain embodiments, the GPU 335 is configured with, for example, appropriate programming or hardware configuration, an instruction that defines geometry, lighting, shading, texturing, motion, and / or camera parameters for the scene. It has a 3D rendering function to generate pixel data for the output image from the data. The GPU 335 further includes a programmable execution unit capable of executing shader programs.
The graphics subsystem 330 periodically outputs pixel data for an image from the graphics memory 340 that should be displayed on the display device 350. The display device 350 is any device capable of displaying visual information in response to a signal from the client device 300, including a CRT, LCD, plasma, and OLED display. The computer client device 300 provides an analog or digital signal to the display device 350. As an example, the display device 350 includes a CRT or flat panel screen that displays text, numbers, graphical symbols, or images. Such content includes one or more images representing a simulated environment, such as a video game or virtual world. In such an environment, the user is represented by the avatar 354. Examples of avatars are, for example, in U.S. Patent Applications 11 / 682,281, 11 / 682,284, 11 / 682,287, 11 / 682,292, 11 / 682,298, 11 / 682,299, which the assignees have in common. It has been described and is incorporated herein by reference. The simulated environment includes one or more auxiliary content spaces 356 where the auxiliary content 358 is displayed. Auxiliary content is generated using the cached asset 317.
In addition, the display 350 may include audio speakers that produce audible or detectable sound. To facilitate the generation of such sounds, the client device 300 is suitable for generating analog or digital audio output from the instructions and / or data provided by the CPU 305, memory 306, and / or storage 315. It also includes an audio processor 355.
The components of client device 300, including CPU 305, memory 306, assistive function 310, data storage device 315, user input device 320, network interface 325, and audio processor 355, are functionally connected to each other via the data bus 360. There is. These components are implemented in hardware, software or firmware, or a combination of two or more of them.
As an example, the arbitration server 400 is configured as shown in FIG. As an example, without loss of generality, the arbitration server 400 is implemented as a computer system or other digital device. The arbitration server 400 includes a central processing unit (CPU) 405 configured to run software applications and optionally an operating system. CPU405 may include one or more processor cores. Although not limited as an example, the CPU 405 may be a parallel processor module such as a cell processor.
Memory 406 is connected to CPU 405, which stores applications and data used by CPU 405. The memory 406 may be in the form of an integrated circuit such as RAM, DRAM, or ROM. The computer program 403 is stored in memory 406 in the form of instructions that can be executed on processor 405. The current update value 401 is stored in memory 406. In addition, update table 407 and cache conflict rule 409 are embodied in memory 406. Without loss of generality as an example, conflict rules are implemented, for example, as lookup tables as described above for Table 2. The instructions in program 403 are configured to perform certain steps in the cached content consistency management method described above, eg, for delivery-side operation 240 in FIG. 2B. Specifically, the distribution server 400 is configured to perform the next step, for example, by proper programming of program 403. a) Receive the update token value from the client device, b) use the update token value and the current update token value 401 to identify one or more content assets stored in the cache associated with the client device. c) Whether there is a potential conflict between one or more of the cached assets and one or more of the assets in the update list determined from the current update token value and the update table. If the decision is made and d) it is determined in step c) that a conflict exists, then the decision is made to resolve the conflict by removing one or more potential conflicting assets from the client device cache, and the one or more conflicting assets. Send an instruction to the client device to remove the, and / or e) notify the client device to proceed with updating the content assets if it is determined in step c) that there are no potential conflicts. .. conflict
The arbitration server 400 may also include known support functions 410 such as input / output (I / O) device 411, power supply (P / S) 412, clock (CLK) 413 and cache 414. The arbitration server 400 may further include a storage device 415 that provides non-volatile storage for applications and data. The storage device 415 may be used as a temporary or long-term storage of contact information 416 such as a distribution server address or encryption key. As an example, the storage device 415 is a fixed disk drive, removable disk drive, flash memory device, tape drive, CD-ROM, DVD-ROM, Blu-ray (trademark or registered trademark), HD-DVD, UMD, and other optical storage devices. It may be.
One or more user input devices 420 may be used to convey user input from one or more users to the arbitration server 400. For example, one or more user input devices 420 may be connected to the arbitration server 400 via the input / output device 411. Examples of suitable input devices 420 include keyboards, mice, joysticks, touchpads, touch screens, light pens, still / video cameras, and / or microphones. The arbitration server 400 may include a network interface 425 that aids in communication over the electronic communication network 427. Network interface 425 may be configured to implement wired or wireless communication over local area networks and wide area networks such as the Internet. Client device 400 can use one or more message packets 426 on network 427 to send and receive requests for data and / or files.
The components of the arbitration server, including the CPU 405, memory 406, assistive function 410, data storage device 415, user input device 420, and network interface 425, are functionally connected to each other via the data bus 460. These components are implemented in hardware, software or firmware, or a combination of two or more of them.
Embodiments of the present invention facilitate the management of consistency of content assets cached on the client device without imposing an undue administrative burden on the client device itself. Embodiments of the present invention potentially conflict by offloading cache consistency management responsibilities to a remote server, tracking updates using token values, and performing cache consistency management prior to updates. You can avoid caching content assets.
Although preferred embodiments of the present invention have been described in full, various alternatives, variants and equivalents can be used. Therefore, the scope of the present invention is not determined with reference to the above description, but should be determined according to the claims, and includes the entire range of equivalents. Any of the features described herein may be combined with other features, whether preferred or not. Unless expressly stated in the claims, each item is in quantity of one or more. Unless explicitly stated in the claims using a phrase such as "means for", the claims shall not be construed as including the limitation of means plus function.
Every citation, both ways
| Document | Relation | Office |
|---|---|---|
| JP2002334033A | Cites | Japan |
| JP2005250493A | Cites | Japan |
| US20060272031A1 | Cites | United States of America |
| JP2003323142A | Cites | Japan |
| JP2002175470A | Cites | Japan |
| JP2005251137A | Cites | Japan |
| JP2005056420A | Cites | Japan |
| WO2005033955A1 | Cites | World Intellectual Property Organization (WIPO) |
23 members in 4 offices
Priority claims9
| Document | Office | Kind | Date |
|---|---|---|---|
| 11759155 | United States of America | – | |
| 75915507 | United States of America | A | |
| 75915507 | United States of America | A | |
| 2008066181 | United States of America | W | |
| 2008066181 | United States of America | W | |
| 2007759155 | – | – | – |
| 2008066181 | – | – | – |
| US20070759155 | – | – | – |
| WO2008US66181 | – | – | – |
Members23
| Document | Office | Kind | |
|---|---|---|---|
| US2008307103A1 | United States of America | A1 | |
| US2008307412A1 | United States of America | A1 | |
| WO2008154418A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2008154424A1 | World Intellectual Property Organization (WIPO) | A1 | |
| EP2156297A1 | European Patent Office (EPO) | A1 | |
| EP2163093A1 | European Patent Office (EPO) | A1 | |
| JP2010529565A | Japan | A | |
| JP2010530103A | Japan | A | |
| EP2323095A1 | European Patent Office (EPO) | A1 | |
| US2011119151A1 | United States of America | A1 | |
| US2011119345A1 | United States of America | A1 | |
| JP2011108238A | Japan | A | |
| JP2011108241A | Japan | A | |
| EP2330550A1 | European Patent Office (EPO) | A1 | |
| US8126987B2 | United States of America | B2 | |
| EP2163093A4 | European Patent Office (EPO) | A4 | |
| JP2013016189A | Japan | A | |
| JP5209135B2 | Japan | B2 | |
| JP5395037B2 | Japan | B2 | |
| JP5474776B2This record | Japan | B2 | |
| US8996409B2 | United States of America | B2 | |
| EP2156297A4 | European Patent Office (EPO) | A4 | |
| EP2156297B1 | European Patent Office (EPO) | B1 |
20 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Certificate of patent or registration of utility modelJAPANESE INTERMEDIATE CODE: R150R150 | R150 | |
| Certificate of patent or registration of utility modelJAPANESE INTERMEDIATE CODE: R150R150 | R150 | |
| First payment of annual fees (during grant procedure)JAPANESE INTERMEDIATE CODE: A61A61 | A61 | |
| Written decision to grant a patent or to grant a registration (utility model)JAPANESE INTERMEDIATE CODE: A01A01 | A01 | |
| Decision of grant or rejection writtenTRDD | TRDD | |
| Request for written amendment filedJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Notification of reasons for refusalJAPANESE INTERMEDIATE CODE: A131A131 | A131 | |
| Report on retrievalJAPANESE INTERMEDIATE CODE: A971007A977 | A977 | |
| Written request for application examinationJAPANESE INTERMEDIATE CODE: A621A621 | A621 | |
| Notification of acceptance of power of attorneyJAPANESE INTERMEDIATE CODE: A7422RD02 | RD02 | |
| Notification of change in applicantJAPANESE INTERMEDIATE CODE: A712A711 | A711 |
Numbers
- Publication
- 5474776
- Publication, DOCDB
- 5474776
- Publication, EPODOC
- JP5474776B
- Application
- 2010511382
- Application, DOCDB
- 2010511382
- Application, EPODOC
- JP20100511382
Titles2
- Japanese
- キャッシュされたコンテンツの一貫性管理
- English
- Consistency management of cached content
Classification
- CPC, 1
- G06F16/9574
- IPC, 2
- G06F13 00
- G06F12 00