systems and methods for publishing objects (e.g., pages and/or fragments) include assigning expiration times to different versions of objects and determining a plurality of objects which should be published atomically, that is, together in a single action. Then, the invention includes computing updated versions of the plurality of objects and atomically publishing the updated versions wherein the updated versions are not available until after expiration times corresponding to previously published versions of at least one of the plurality of objects (e.g., a cached object) have elapsed. Advantageously, clients attempting to access related cached objects over an information network such as the Internet will not be presented with versions of related objects that are inconsistent with one another.
|
13. A method of publishing objects, the method comprising the steps of:
caching one or more objects of a first version to be served to a client upon request; assigning a release time to a plurality of objects of a second version, the release time being no earlier than a time value when each of the cached objects of the first version has expired; and publishing the plurality of objects together in a single action in accordance with the assigned release time.
28. Apparatus for publishing objects, the apparatus comprising:
at least one processor operable to: (i) cache one or more objects of a first version to be served to a client upon request, (ii) assign a release time to a plurality of objects of a second version, the release time being no earlier than a time value when each of the cached objects of the first version has expired, and (iii) publish together in a single action the plurality of objects in accordance with the assigned release time.
17. A system for publishing a plurality of objects, the system comprising:
at least one publishing system for constructing objects, determining expiration times of objects, and publishing objects together in a single action; at least one server operatively coupled to the at least one publishing system for serving published objects to at least one client; and at least one cache operatively coupled to the at least one server for storing at least one object remotely from said at least one server.
1. A method of publishing objects, the method comprising the steps of:
assigning expiration times to different versions of objects; determining a plurality of objects which should be published together in a single action; computing updated versions of said plurality of objects; and publishing said updated versions together in a single action wherein said updated versions are not available until after expiration times corresponding to previously published versions of at least one of said plurality of objects have elapsed.
32. An article of manufacture for publishing objects, comprising a machine readable medium containing one or more programs which when executed implement the steps of:
assigning expiration times to different versions of objects; determining a plurality of objects which should be published together in a single action; computing updated versions of said plurality of objects; and publishing said updated versions together in a single action after expiration times corresponding to previously published versions of said plurality of objects have elapsed.
2. The method of
combining the plurality of objects (first plurality) and at least one other plurality of objects (second plurality); assigning a release time to the combination of the first and second pluralities, the release time being no earlier than the maximum release time respectively assigned to the constituent pluralities; and publishing the first and second pluralities together in a single action in accordance with the maximum release time.
3. The method of
4. The method of
5. The method of
6. The method of
7. The method of
8. The method of
9. The method of
assigning release times to more than one plurality of objects waiting to be published; and publishing together in a single action the plurality having the lowest release time that is consistent with preceding pluralities of objects.
11. The method of
12. The method of
14. The method of
combining the plurality of objects (first plurality) and at least one other plurality of objects (second plurality); assigning a release time to the combination of the first and second pluralities, the release time being no earlier than the maximum release time respectively assigned to the constituent pluralities; and publishing the first and second pluralities together in a single action in accordance with the maximum release time.
15. The method of
16. The method of
assigning release times to more than-one plurality of objects waiting to be published; and publishing together in a single action the plurality having the lowest release time that is consistent with preceding pluralities of objects.
18. The system of
19. The system of
20. The system of
21. The system of
22. The system of
23. The system of
24. The system of
25. The system of
27. The system of
29. The apparatus of
30. The apparatus of
31. The apparatus of
|
The present invention relates to publishing of data such as, for example, on information networks such as the Internet, and, more particularly, to systems and methods for publishing data in association with a cache wherein the data has expiration times associated therewith.
The Internet or World Wide Web (WWW or the Web) as it exists today, allows data to be cached at various places in the network, such as at proxy servers. Objects which are cached at a proxy server may have expiration times associated with them indicating when they expire. A key problem with caching objects on the Web is that there is often no way to accurately predict in advance when an object should expire. Therefore, it is possible for a proxy cache to contain pages from the same Web site which are inconsistent with each other.
For example, suppose that cached page p1 contains the result from a sporting event with an expiration time of 8:30. At 8:15, a new page p2 is cached at the same proxy server with an updated result of the same sporting event. Between 8:15 and 8:30, the cache may be serving copies of p1 and p2 which are inconsistent with each other. It may be preferable not to cache p2 until the cached version of p1 is invalidated or updated.
Thus, it would be highly advantageous to provide systems and methods for publishing data consistently, for example, in remote caches wherein such systems and methods would be compatible with existing information networks such as the Web and would not require Web sites to be able to push data or invalidation/update messages to remote caches.
The present invention provides systems and methods for publishing objects, for example, on an information network, such that expiration-sensitive data may be consistently cached. Such inventive systems and methods are compatible with existing information networks such as the Web and do not require Web sites to be able to push data or invalidation/update messages to remote caches. It is to be understood that the term "expiration-sensitive data" refers to available data, for example, data on an information network, that has an expiration time (e.g., time after which the data is no longer valid) associated therewith.
In one aspect of the inventions systems and methods for publishing objects (e.g., pages and/or fragments)include assigning expiration times to different versions of objects and determining a plurality of objects which should be published atomically. Then, the invention includes computing updated versions of the plurality of objects and atomically publishing the updated versions wherein the updated versions are not available until after expiration times corresponding to previously published versions of at least one of the plurality of objects (e.g., a cached object) have elapsed. The term "atomic" refers to the publication of the plurality of objects in a single action, that is, the objects in the plurality are published together.
In another aspect of the invention, systems and methods for publishing objects include caching one or more objects of a first version to be served to a client upon request, for example, via an information network. Further, a release time is assigned to a plurality (e.g., a first bundle) of objects of a second version wherein the release time is no earlier than a time value when each of the cached objects of the first version has expired. Lastly, the first bundle of objects is atomically published in accordance with the assigned release time. Advantageously, clients attempting to access related cached objects over the information network will not be presented with versions of related objects that are inconsistent with one another.
In yet another aspect of the invention, the systems and methods may include the step of combining the first bundle of objects and at least a second bundle of objects and assigning a release time to the combination of the first and second bundles, the release time being no earlier than the maximum release time respectively assigned to the constituent bundles. Then, the first and second bundles are atomically published in accordance with the maximum release time. The publication of such compound bundles reduces or eliminates delays that may be associated with object publication. In a further aspect of the invention, the combination of bundles may be subject to certain constraints that are set to ensure consistency of cached data.
In still a further aspect of the invention, the systems and methods may include the steps of assigning release times to more than one bundle of objects waiting to be published and atomically publishing the bundle having the lowest release time that is consistent with preceding bundles of objects. In this way, the publication order of non-combined bundles may be changed in order to get content published more efficiently.
These and other objects, features and advantages of the present invention will become apparent from the following detailed description of illustrative embodiments thereof, which is to be read in connection with the accompanying drawings.
The present invention will be explained below in the context of an illustrative Internet or Web implementation. However, it is to be understood that the present invention is not limited to an information network architecture. Rather, the invention is more generally applicable to data publication including, for example, cached expiration-sensitive data with regard to which it is desirable to provide improved consistency between such data.
An illustrative embodiment of the invention is depicted in FIG. 1A. As shown, the illustrative system 100 of the invention may include a publishing system 110 which creates Web pages. According to the invention, a plurality of pages, known as a "bundle," is published in a single or atomic action. The bundle might be comprised of pages which have to be published atomically in order to satisfy particular consistency constraints. An example of a constraint is evident from the data inconsistency example discussed above, e.g., the consistency constraint would be not to cache page p2 until the cached version of page p1 is invalidated or updated. Other examples of consistency constraints which maybe applied in accordance with the invention are discussed in the paper by the present inventors entitled: "A Publishing System for Efficiently Creating Dynamic Web Content," IBM Research Report, RC21546, July 1999. When a bundle is published, the pages comprising the bundle are made available to clients 140 from the Web server 120. Web pages may be cached within a proxy cache 130. It is to be appreciated that the system 100 may include multiple publishing systems (110), Web servers (120), proxy caches (130), and/or clients (140).
Various illustrative methodologies for providing publishing data and consistent caching of expiration-sensitive data in accordance with system 100 will be explained below. First, however, an illustrative hardware implementation of one or more of the components of an expiration-sensitive data caching system according to the invention will be discussed.
Accordingly, computer software including instructions or code for performing the methodologies of the invention, as described herein, may be stored in one or more of the associated memory devices (e.g., ROM, fixed or removable memory) and, when ready to be utilized, loaded in part or in whole (e.g., into RAM) and executed by a CPU. In any case, it should be understood that the elements and operations illustrated in the figures may be implemented in various forms of hardware, software, or combinations thereof, e.g., one or more special purpose processors with associated memory, application specific integrated circuit(s), functional circuitry, one or more appropriately programmed general purpose digital computers with associated memory, etc. Given the teachings of the invention provided herein, one of ordinary skill in the related art will be able to contemplate other implementations of the elements of the invention.
Referring now to
Let b1 be a bundle of pages created by the publishing system 110. We cannot necessarily publish b1 immediately and still preserve consistency of remote proxy caches. For example, suppose that the current time is 8:30. Let x and y be cached pages of b1 which both contain common information. Suppose that exp1(x)=8:31 and exp1 (y)=10:00. If we publish b1 immediately, the new version of x may go into a proxy cache after 8:31. Suppose this happens at 8:32. That same proxy cache may continue to cache the old version of y until 10:00. Thus, between 8:32 and 10:00, the proxy cache will serve inconsistent versions of x and y. Thus, an improved method is needed for publishing b1 in order to preserve consistency.
In step 220, the publishing system 110 sets the release time of b1, RT(b1), to be no earlier than the maximum of exp1 values for all elements of b1 which might be cached, i.e., a time when all members of b1 currently cached will have expired. Between the current time and RT(b1), Web server(s) 120 will continue to serve the previous versions of all objects in b1; for those which are cacheable, the system assigns an expiration time no later than RT(b1).
At time RT(b1), b1 is published atomically, in step 230. For objects in b1 which are cacheable, the publishing system 110 attempts to assign similar expiration times to objects likely to be updated at the same time if such a determination can be made.
In some systems, it may be possible to publish b1 before RT(b1). This could be the case if there are delays between when an object is published and when it might be stored in a proxy cache. For example, suppose that b1 includes a cached object o such that it takes at least three seconds for o to appear in a proxy cache after it is published. It might then be possible to publish the new version of b1 two seconds before the previous version of o expires.
This approach can sometimes delay publication of a bundle. However, the system 110 of the invention also has the ability to combine multiple bundles waiting to be published into a single bundle referred to as a "compound bundle." The release time of a compound bundle is no earlier than the maximum of release times for all constituent bundles. Combining bundles can sometimes delay publication of some pages. Thus, the inventive system applies selectivity in combining bundles as depicted in the flow diagram of FIG. 3.
Referring to the process 300 depicted in
(1) Suppose that b1 is the next bundle to be published. The constraint is to only combine a later bundle b2 with b1 if RT(b2)-RT(b1) is less than a certain threshold and, either:
(a) b2 is the next bundle to be published after b1, or
(b) b2 is consistent with all bundles to be published between b1 and b2.
Thus, if the constraints are satisfied, the bundles are combined and published by the publishing system 110 in step 330. If the constraints are not satisfied, the bundles are published sequentially by the publishing system 10 in step 340.
It is also possible to change the order in which un-merged (non-combined) bundles are published in order to get content published more quickly as depicted by the process 400 FIG. 4. In step 410, multiple bundles are waiting to be published. In step 420, the publishing system 110 calculates RT (release time) for each awaiting bundle assuming it were to be the next one to be published (this assumption is necessary because RT for remaining bundles may change after a bundle is published to the outside world, e.g., clients). In step 430, the publishing system 110 publishes to the outside world the bundle with the lowest RT value which is consistent with all bundles ahead of it. In some cases, it is possible to publish one or more pages of a bundle before the release time of the bundle in order to get important information to the outside world. However, this may have the negative effect of violating consistency.
It is to be appreciated that the present invention may be implemented in accordance with one or more of the various embodiments disclosed in the following U.S. patent applications: (i) "Method and System for Rapid Publishing and Censoring Information," by J. R. Challenger, C. D. Ferslat, A. Iyengar, P. Reed, G. Spivak and K. Witting, identifiedby U.S. Pat. No. 09/283,562, still pending, and filed Apr. 1, 1999; (ii) "Method and System for Publishing Dynamic Web Documents," by J. R. Challenger, C. D. Ferstat, A. Iyengar, P. Reed, G. Spivak and K. Witting, Ser. No. 09/283,542, still pending, and filed Apr. 1, 1999; and (iii) "Method and System for Efficiently Constructing and Consistently Publishing Web Documents," by J. R. Challenger, C. D. Ferstat, A. Iyengar; P. Reed and K. Witting, Ser. No. 09/283,561, still pending, and filed Apr. 1, 1999; the disclosures of which are incorporated herein by reference.
Referring now to
In this embodiment, the invention may preferably employ a publishing system as described in the above-referenced paper by the present inventors entitled: "A Publishing System for Efficiently Creating Dynamic Web Content," IBM Research Report, RC21546, July 1999. In that particular publishing system, methods for efficiently creating dynamic Web content are disclosed. Examples of Web sites that provide dynamic content may include sports sites, stock market sites, and virtual stores or auction sites where information on available products and subjects is constantly changing. In order to reduce the overhead of generating dynamic pages from scratch, the publishing system disclosed in the referenced paper composes dynamic pages from simpler entities referred to as "fragments." Fragments typically represent parts of Web pages which change together; when a change to underlying data occurs which affects several Web pages, the fragments affected by the change can easily be identified. It is possible for a fragment to recursively embed another, fragment. The system composes Web pages from simpler fragments. A page is a complete entity which may be served to a client. An object may be either a page or a fragment.
A solution that this preferred embodiment provides with respect to improving data consistency associated with expiration-sensitive cached data may be considered as focusing on two main areas: publishing and serving of expiry information.
Note that expiry information is all about time. It is critical that all machines involved in this process are synchronized to some known time source. Slight drift (e.g., milliseconds) may be tolerable, but anything more than that and the systems performance may degrade. The present invention provides solutions that address these concerns and improves cached data consistency.
Publishing As shown in
The distributor 508 is a component which serves to distribute content to origin servers (OS) 510 from where the public will access it. The public may be represented in the Internet users block 512. The content may be provided to the distributor 508 by the production stage 506 via Web server 514. The distributor 508 is responsible for holding onto bundles of content until such a time that it can consistently be published, taking into consideration the expiry times of each of the parts of the bundle. TM source-to-sink is then used as the distribution mechanism. That is, a trigger monitor is preferably included in the distributor 508 which is used to move data from one location to another. This is referred to as "transport" or "source-to-sink." Any data moving tool could be employed, e.g., ftp, kermit, etc. It is to be appreciated that the trigger monitor 504 between pre-production and production, as described above, performs functions in addition to moving data, e.g., page assembly, and thus operates as more than just a transport.
Upon receiving the Ack signal from the TM 504, the distributor 508 performs the following operations:
1. Looks up, in an expiry table 516, the Absolute Expiry Time (AET) of all fragments. 110 in the-bundle;
2. Calculates the Release Time (RT) as the latest AET, i.e., the time at which the current version of all fragments will have expired. Objects that have never been published are considered to have an AET of 0.
3. Sets the Maximum Expiry Time (MET) for all fragments to RT;
4. Sleeps (remains substantially inactive) until one second before RT. The distributor could sleep until. RT, but since expiry times preferably have a one second granularity, it can begin working slightly early. This gives the system the potential to have finished processing before everything expires, or if the processing is not complete, this approach reduces the length of time for which expired content is served by a second.
Since bundles are continuously arriving at the production stage 506, the distributor 508 is preferably multi-threaded so it can process multiple bundles in parallel. As with other levels, bundles can merge on production while waiting for the distributor to send them to the OS 510. As a bundle arrives, if it is merged, we preferably ensure that only one thread is dealing with the merged bundle, and that the RT of the now merged bundle is recalculated. So we either kill off (disregard) the already sleeping thread, or code the thread wake-up to handle the fact that the bundle contents may have changed while the distributor was sleeping, and it's RT may have been pushed out, so it will need to sleep a little longer.
Upon waking up, the distributor 508:
1. After dealing with potential merges, the distributor sends a trigger to the TM responsible for moving content from production to OS, i.e., TM 521. This TM will be performing source-to-sink for multiple files in one trigger, where there will be as many sinks as there are OSs. Using a trigger monitor, it is possible to have a number of different OS types. Typically, within the environment this invention may be implemented, this may include a file system, e.g., a DFS (Distributed File System) from Transarc, and a network cache accelerator, e.g., a 2216 from IBM which performs routing: and web server caching. A DFS (shown in
2. When the Ack signal is received for this trigger, the distributor resets MET for all the objects back to the default MAX_INT. MAX_INT is the largest possible integer that the particular system can represent. On systems that use 4 bytes, or 32-bit representations for integer numbers, this would be 2,147,483,647. Typically programming languages provide a constant to represent this number, and in Java this constant is called MAX_INT.
It is to be understood that bundles are being merged in order to ensure that content is consistently published. However, the production stage may provide facilities for clearing data log-jams (back ups) at the expense of consistency. The expiry system may recommend how to break up the bundles to cause the least disruption, e.g., an article can be published without the pages that link it in, it simply won't be surfaced yet. By programmatically analyzing all the items in the log-jam and how they interrelate, it is possible to recommend ways to clear things with minimal breakage.
Similarly, there may be times when content just has to be pushed out, rather than letting the distributor hold it up. A mechanism within the distributor may be made available to force content to be distributed, with the knowledge that for some users they may still be seeing old cached copies, rather than the new ones.
Serving
In parallel to publishing, files are continually being served. Each time a file is served it has expiry headers added to it to enable caches to hold onto the content and serve it. In order to do this, system 500 includes one or more server extensions (service/servlet) 518 which look up the expiry information and add it to each file served. Since the OS infrastructure employed in the context of
One way to achieve that all OSs work off the same expiry table is to take the approach of caching expiry times at the origin servers and refreshing them once they expire from a central source. This can either be done "in-line" as the server serves up the content, or by an external daemon maintaining the expiry cache. The in-line approach may carry more risk since the client must wait for the server to determine the expiry from the remote centralized server. During this time, the user is waiting for the content. The other approach places the effort of updating the cache on another daemon. The external daemon approach will now be described in the context of FIG. 6.
First, as a request comes in for a piece of content, the Web server (510 or 514) calls the server extension 518. This server extension does a look up into a data structure such as a hash table of URLs to get the AET for the content it's trying to serve. If no AET was returned then the URL wasn't found in the cache 604, so it is added to a list of cache misses 606, and the extension returns to let the Web server handle the request as if it hadn't been called, i.e., send a "304" or the actual content.
A "304" is an HTTP return code used to indicate to the client (e.g., a browser or proxy) that the copy it has in it's cache has the same modified time as the copy on the server. When a client initially requests a resource (page, image, etc.), it gets the requested item back together with a set of headers. One of these headers specifies the Last-Modified time of the resource. If the client caches resources locally, subsequent requests for the same resource can include an If-Modified-Since header specifying the Last-Modified time. The server, rather than sending the resource again, can send a "304" back to indicate to the client that it's cached copy is the same as the one of the server. This is a simple form of caching, but the client must still check each resource each time, rather than using expiry headers in which the client can guarantee that the copy it has will be valid until a given time.
If an AET was returned, the "exit" looks to see if it has passed, if it hasn't then it builds an expiry header (and any other headers required to get the content to cache) using the AET. If the AET has passed, then the "exit" returns as it did when not finding the AET. "Exit" in this instance simply means the piece of code/application performing the job. Typically modern programs allow you to add your own plug-in modules to perform specific functions over and above what the original designer produced. These plug-ins are hooked into the program at one of several "exit" points designed in by the original designer. Simply, an "exit" is an API point within an application data flow to which you can attach home-grown code to perform some specialist function.
Second, the other end of this is the updater 608 which keeps the cache fresh and handles cache misses. The updater 608 views the cache sorted by AET such that as each AET passes it can request from a Central Expiry Manager (CEM). 520 what the new AET for that URL should be and update the cache table accordingly. Similarly, for URLs in the list of cache misses, it uses the CEM to get the initial value and inserts it into the cache.
In one embodiment, the cache table is an in memory data structure, which may be pinned since it may grow rather large, e.g., 100,000 URLs, each approximately 80 bytes long, plus expiry time is around 8 Mb. Of course this is a memory table, so restarting the daemon flushes the table. To get over the obvious startup cost of doing this, the updater preferably pre-populates the cache on startup by requesting the working set of AETs from the CEM (the working set being to documents most people are looking at right now).
A disadvantage to not looking up the expired AETs on-demand is that the updater may end up maintaining entries in the table that are no longer being used (since you have no knowledge of the working set that the server is currently serving). One approach to get around this is to tag each time a URL is used and run a least-recently used policy on the table to remove values that are no longer being used and hence reduce the number of redundant updates.
Another solution which precludes the Web server from having to write to the expiry cache (and the locking issues that multiple writers raise) is to add the time that the URL was first put into the cache, and then remove an entry after a certain period of time. This way, old pages that are not being viewed would not be maintained, and more common pages would be recreated since they are being served.
In a preferred embodiment, the URL cache entry time may be combined with the working set pre-population approach wherein the working set is pinned so it does not get flushed. In this embodiment, the cache table is small and the number of redundant updates is reduced.
The expiry table in the CEM contains:
(i) URL--the uniform resource locator or the unique name for the piece of content in question. This URL may be a directory, in which case the values in this row apply to all URLs in that directory, and subdirectories, unless there is an entry for a more specific URL.
(ii) Absolute Expiry Time (AET)--the time at which this URL expires. Typically this will be a number of "seconds since the epoc," i.e., a "long." "Epoc" is a term coined in the UNIX environment to refer to a known point in time. The epoc on UNIX machines is Jan. 1, 1970 and, subsequently, time is measured as the number of seconds since this point in time. Hence, "seconds since the epoc" is the simply a time of day. This number of seconds is stored in a data type called a "long" (short for "long integer").
(iii) Time-To-Live (TTL)--the relative length of time for which a piece of content can be cached in seconds. This is used by the CEM to work out what the new expiry time for a piece of expired content will be.
(iv) Maximum Expiry Time (MET)--normally has the value of MAX_INT, this value is used by the publishing system to "cap" the AET while a piece of content is being held by the distributor. In any process updating, the AET should not update to a value greater than this value.
When the CEM 520 receives a request from an updater,it looks up the given URL in the expiry table, updates it if the AET has passed, and returns the AET to the updater. As stated above, updating an AET using the URLs TTL may be done as follows:
The CEM handles connections from all the OSs, for example, by maintaining a connection with them to avoid the overhead of establishing the connection. If an OS is disconnected, it retries connecting back to the CEM, with the CEM listening for such connections.
Additionally, the CEM may provide an API (application programming interface) to allow programs to maintain the expiry table, e.g., changing the TTL for a URL or creating a more specific URL in the table.
For scaling and performance, a CEM may act as a cache, itself, and pull values from another CEM rather than calculating values itself. This may be realized in an environment where a global CEM cascades to in complex CEMs, which in turn talk to the updaters on the serving nodes in that complex. For example, we may have a primary CEM in Sydney, with. secondary CEMs in each serving complex. The nodes would hit the secondary CEMs.
Referring now to
In
In
Although illustrative embodiments of the present invention have been described herein with reference to the accompanying drawings, it is to be understood that the invention is not limited to those precise embodiments, and that various other changes and modifications may be made by one skilled in the art without departing from the scope or spirit of the invention.
Challenger, James Robert Harold, Iyengar, Arun Kwangil, Ferstat, Cameron Donald, Reed, Paul, Witting, Karen A.
Patent | Priority | Assignee | Title |
10007954, | Aug 23 2013 | International Business Machines Corporation | Managing an initial post on a website |
10049412, | Aug 23 2013 | International Business Machines Corporation | Managing an initial post on a website |
10055880, | Dec 06 2016 | ACTIVISION PUBLISHING, INC | Methods and systems to modify a two dimensional facial image to increase dimensional depth and generate a facial image that appears three dimensional |
10095431, | Jun 18 2015 | CIGENT TECHNOLOGY, INC | Device controller and method of enforcing time-based sector level security |
10099140, | Oct 08 2015 | ACTIVISION PUBLISHING, INC ; Activision Publishing, Inc. | System and method for generating personalized messaging campaigns for video game players |
10114903, | Feb 07 2000 | Microsoft Corporation | Method and apparatus for content synchronization |
10118099, | Dec 16 2014 | ACTIVISION PUBLISHING, INC | System and method for transparently styling non-player characters in a multiplayer video game |
10137376, | Dec 31 2012 | ACTIVISION PUBLISHING, INC | System and method for creating and streaming augmented game sessions |
10157236, | May 23 2011 | RADWARE CANADA HOLDINGS INC | Optimized rendering of dynamic content |
10179289, | Jun 21 2016 | Activision Publishing, Inc.; ACTIVISION PUBLISHING, INC | System and method for reading graphically-encoded identifiers from physical trading cards through image-based template matching |
10213682, | Jun 15 2015 | ACTIVISION PUBLISHING, INC | System and method for uniquely identifying physical trading cards and incorporating trading card game items in a video game |
10216743, | Feb 09 2017 | International Business Machines Corporation | Format management for a content repository |
10226701, | Apr 29 2016 | Activision Publishing, Inc. | System and method for identifying spawn locations in a video game |
10226703, | Apr 01 2016 | Activision Publishing, Inc.; ACTIVISION PUBLISHING, INC | System and method of generating and providing interactive annotation items based on triggering events in a video game |
10232272, | Oct 21 2015 | Activision Publishing, Inc. | System and method for replaying video game streams |
10245509, | Oct 21 2015 | Activision Publishing, Inc. | System and method of inferring user interest in different aspects of video game streams |
10284454, | Nov 30 2007 | Activision Publishing, Inc. | Automatic increasing of capacity of a virtual space in a virtual world |
10286314, | May 14 2015 | Activision Publishing, Inc. | System and method for providing continuous gameplay in a multiplayer video game through an unbounded gameplay session |
10286326, | Jul 03 2014 | Activision Publishing, Inc. | Soft reservation system and method for multiplayer video games |
10300390, | Apr 01 2016 | Activision Publishing, Inc.; ACTIVISION PUBLISHING, INC | System and method of automatically annotating gameplay of a video game based on triggering events |
10315113, | May 14 2015 | Activision Publishing, Inc. | System and method for simulating gameplay of nonplayer characters distributed across networked end user devices |
10322351, | Jul 03 2014 | Activision Publishing, Inc. | Matchmaking system and method for multiplayer video games |
10376781, | Oct 21 2015 | Activision Publishing, Inc. | System and method of generating and distributing video game streams |
10376792, | Jul 03 2014 | Activision Publishing, Inc. | Group composition matchmaking system and method for multiplayer video games |
10376793, | Feb 18 2010 | Activision Publishing, Inc. | Videogame system and method that enables characters to earn virtual fans by completing secondary objectives |
10421019, | May 12 2010 | Activision Publishing, Inc. | System and method for enabling players to participate in asynchronous, competitive challenges |
10455043, | Sep 20 2013 | Yottaa Inc. | Systems and methods for managing loading priority or sequencing of fragments of a web object |
10463964, | Nov 17 2016 | ACTIVISION PUBLISHING, INC | Systems and methods for the real-time generation of in-game, locally accessible heatmaps |
10463971, | Dec 06 2017 | ACTIVISION PUBLISHING, INC | System and method for validating video gaming data |
10471348, | Jul 24 2015 | Activision Publishing, Inc.; ACTIVISION PUBLISHING, INC | System and method for creating and sharing customized video game weapon configurations in multiplayer video games via one or more social networks |
10486068, | May 14 2015 | Activision Publishing, Inc. | System and method for providing dynamically variable maps in a video game |
10500498, | Nov 29 2016 | Activision Publishing, Inc. | System and method for optimizing virtual games |
10530888, | Jun 01 2016 | HOME BOX OFFICE, INC. | Cached data expiration and refresh |
10537809, | Dec 06 2017 | ACTIVISION PUBLISHING, INC | System and method for validating video gaming data |
10542074, | Aug 12 2013 | Saturn Licensing LLC | Stream transmission using MPEG media transport (MMT) |
10545911, | Feb 09 2017 | International Business Machines Corporation | Format management for a content repository |
10545912, | Feb 09 2017 | International Business Machines Corporation | Format management for a content repository |
10561945, | Sep 27 2017 | Activision Publishing, Inc. | Methods and systems for incentivizing team cooperation in multiplayer gaming environments |
10573065, | Jul 29 2016 | ACTIVISION PUBLISHING, INC | Systems and methods for automating the personalization of blendshape rigs based on performance capture data |
10586380, | Jul 29 2016 | ACTIVISION PUBLISHING, INC | Systems and methods for automating the animation of blendshape rigs |
10596471, | Dec 22 2017 | Activision Publishing, Inc. | Systems and methods for enabling audience participation in multi-player video game play sessions |
10627983, | Dec 24 2007 | Activision Publishing, Inc. | Generating data for managing encounters in a virtual world environment |
10650539, | Dec 06 2016 | Activision Publishing, Inc. | Methods and systems to modify a two dimensional facial image to increase dimensional depth and generate a facial image that appears three dimensional |
10664440, | Feb 09 2017 | International Business Machines Corporation | Format management for a content repository |
10668367, | Jun 15 2015 | ACTIVISION PUBLISHING, INC | System and method for uniquely identifying physical trading cards and incorporating trading card game items in a video game |
10668381, | Dec 16 2014 | Activision Publishing, Inc. | System and method for transparently styling non-player characters in a multiplayer video game |
10694352, | Oct 28 2015 | ACTIVISION PUBLISHING, INC | System and method of using physical objects to control software access |
10702779, | Nov 17 2016 | Activision Publishing, Inc. | Bandwidth and processing efficient heatmaps |
10709981, | Nov 17 2016 | ACTIVISION PUBLISHING, INC | Systems and methods for the real-time generation of in-game, locally accessible barrier-aware heatmaps |
10735322, | May 28 2010 | Radware, Ltd. | Accelerating HTTP responses in a client/server environment |
10747685, | Jan 31 2009 | KYNDRYL, INC | Expiring virtual content from a cache in a virtual universe |
10765948, | Dec 22 2017 | ACTIVISION PUBLISHING, INC | Video game content aggregation, normalization, and publication systems and methods |
10771581, | Sep 20 2013 | Yottaa Inc | Systems and methods for handling a cookie from a server by an intermediary between the server and a client |
10789060, | Aug 12 2015 | Comcast Cable Communications, LLC | Providing and using different update times for a resource |
10807003, | Apr 29 2016 | Activision Publishing, Inc. | Systems and methods for determining distances required to achieve a line of site between nodes |
10818060, | Sep 05 2017 | Activision Publishing, Inc. | Systems and methods for guiding motion capture actors using a motion reference system |
10827021, | Sep 20 2013 | Yottaa, Inc. | Systems and methods for managing loading priority or sequencing of fragments of a web object |
10835818, | Jul 24 2015 | Activision Publishing, Inc. | Systems and methods for customizing weapons and sharing customized weapons via social networks |
10857468, | Jul 03 2014 | Activision Publishing, Inc. | Systems and methods for dynamically weighing match variables to better tune player matches |
10861079, | Feb 23 2017 | ACTIVISION PUBLISHING, INC | Flexible online pre-ordering system for media |
10864443, | Dec 22 2017 | ACTIVISION PUBLISHING, INC | Video game content aggregation, normalization, and publication systems and methods |
10898813, | Oct 21 2015 | Activision Publishing, Inc. | Methods and systems for generating and providing virtual objects and/or playable recreations of gameplay |
10905963, | Dec 31 2012 | Activision Publishing, Inc. | System and method for creating and streaming augmented game sessions |
10915894, | Apr 27 2017 | REFINITIV US ORGANIZATION LLC | Systems and methods for distributed data mapping |
10924574, | Sep 20 2013 | Yottaa Inc. | Systems and methods for managing loading priority or sequencing of fragments of a web object |
10956909, | Apr 27 2017 | REFINITIV US ORGANIZATION LLC | Systems and methods for identity atomization and usage |
10974150, | Sep 27 2017 | Activision Publishing, Inc. | Methods and systems for improved content customization in multiplayer gaming environments |
10981051, | Dec 19 2017 | ACTIVISION PUBLISHING, INC | Synchronized, fully programmable game controllers |
10981069, | Mar 07 2008 | Activision Publishing, Inc. | Methods and systems for determining the authenticity of copied objects in a virtual environment |
10984175, | Aug 09 2013 | Yottaa Inc. | Systems and methods for dynamically modifying a requested web page from a server for presentation at a client |
10987588, | Nov 29 2016 | Activision Publishing, Inc. | System and method for optimizing virtual games |
10991110, | Dec 06 2016 | Activision Publishing, Inc. | Methods and systems to modify a two dimensional facial image to increase dimensional depth and generate a facial image that appears three dimensional |
11019173, | Jun 01 2016 | HOME BOX OFFICE, INC. | Cached data expiration and refresh |
11040286, | Sep 27 2017 | Activision Publishing, Inc. | Methods and systems for improved content generation in multiplayer gaming environments |
11097193, | Sep 11 2019 | ACTIVISION PUBLISHING, INC | Methods and systems for increasing player engagement in multiplayer gaming environments |
11115712, | Dec 15 2018 | ACTIVISION PUBLISHING, INC | Systems and methods for indexing, searching for, and retrieving digital media |
11117055, | Dec 06 2017 | ACTIVISION PUBLISHING, INC | Systems and methods for validating leaderboard gaming data |
11148063, | Dec 22 2017 | Activision Publishing, Inc. | Systems and methods for providing a crowd advantage to one or more players in the course of a multi-player video game play session |
11185784, | Oct 08 2015 | Activision Publishing, Inc. | System and method for generating personalized messaging campaigns for video game players |
11189084, | Jul 29 2016 | Activision Publishing, Inc. | Systems and methods for executing improved iterative optimization processes to personify blendshape rigs |
11192028, | Nov 19 2018 | ACTIVISION PUBLISHING, INC | Systems and methods for the real-time customization of video game content based on player data |
11207596, | Nov 17 2016 | Activision Publishing, Inc. | Systems and methods for the real-time generation of in-game, locally accessible barrier-aware heatmaps |
11213753, | Nov 17 2016 | Activision Publishing, Inc. | Systems and methods for the generation of heatmaps |
11224807, | May 14 2015 | Activision Publishing, Inc. | System and method for providing dynamically variable maps in a video game |
11263670, | Nov 19 2018 | ACTIVISION PUBLISHING, INC | Systems and methods for dynamically modifying video game content based on non-video gaming content being concurrently experienced by a user |
11278813, | Dec 22 2017 | ACTIVISION PUBLISHING, INC | Systems and methods for enabling audience participation in bonus game play sessions |
11297159, | May 05 2008 | Radware, Ltd. | Extensible, asynchronous, centralized analysis and optimization of server responses to client requests |
11305191, | Dec 20 2018 | ACTIVISION PUBLISHING, INC | Systems and methods for controlling camera perspectives, movements, and displays of video game gameplay |
11310346, | Oct 21 2015 | Activision Publishing, Inc. | System and method of generating and distributing video game streams |
11344808, | Jun 28 2019 | ACTIVISION PUBLISHING, INC | Systems and methods for dynamically generating and modulating music based on gaming events, player profiles and/or player reactions |
11351459, | Aug 18 2020 | Activision Publishing, Inc. | Multiplayer video games with virtual characters having dynamically generated attribute profiles unconstrained by predefined discrete values |
11351466, | Dec 05 2014 | ACTIVISION PUBLISHING, ING.; ACTIVISION PUBLISHING, INC | System and method for customizing a replay of one or more game events in a video game |
11413536, | Dec 22 2017 | Activision Publishing, Inc. | Systems and methods for managing virtual items across multiple video game environments |
11420119, | May 14 2015 | Activision Publishing, Inc. | Systems and methods for initiating conversion between bounded gameplay sessions and unbounded gameplay sessions |
11420122, | Dec 23 2019 | Activision Publishing, Inc.; ACTIVISION PUBLISHING, INC | Systems and methods for controlling camera perspectives, movements, and displays of video game gameplay |
11423556, | Dec 06 2016 | Activision Publishing, Inc. | Methods and systems to modify two dimensional facial images in a video to generate, in real-time, facial images that appear three dimensional |
11423605, | Nov 01 2019 | ACTIVISION PUBLISHING, INC | Systems and methods for remastering a game space while maintaining the underlying game simulation |
11439904, | Nov 11 2020 | ACTIVISION PUBLISHING, INC | Systems and methods for imparting dynamic and realistic movement to player-controlled avatars in video games |
11439909, | Apr 01 2016 | Activision Publishing, Inc. | Systems and methods of generating and sharing social messages based on triggering events in a video game |
11446582, | Dec 31 2012 | Activision Publishing, Inc. | System and method for streaming game sessions to third party gaming consoles |
11524234, | Aug 18 2020 | Activision Publishing, Inc. | Multiplayer video games with virtual characters having dynamically modified fields of view |
11524237, | May 14 2015 | Activision Publishing, Inc. | Systems and methods for distributing the generation of nonplayer characters across networked end user devices for use in simulated NPC gameplay sessions |
11537209, | Dec 17 2019 | ACTIVISION PUBLISHING, INC | Systems and methods for guiding actors using a motion capture reference system |
11563774, | Dec 27 2019 | Activision Publishing, Inc.; ACTIVISION PUBLISHING, INC | Systems and methods for tracking and identifying phishing website authors |
11573781, | Aug 12 2015 | Comcast Cable Communications, LLC | Providing and using different update times for a resource |
11666831, | Dec 22 2017 | Activision Publishing, Inc. | Systems and methods for determining game events based on a crowd advantage of one or more players in the course of a multi-player video game play session |
11679330, | Dec 18 2018 | ACTIVISION PUBLISHING, INC | Systems and methods for generating improved non-player characters |
11679333, | Oct 21 2015 | Activision Publishing, Inc. | Methods and systems for generating a video game stream based on an obtained game log |
11704703, | Nov 19 2018 | Activision Publishing, Inc. | Systems and methods for dynamically modifying video game content based on non-video gaming content being concurrently experienced by a user |
11709551, | Dec 17 2019 | Activision Publishing, Inc. | Systems and methods for guiding actors using a motion capture reference system |
11712627, | Nov 08 2019 | ACTIVISION PUBLISHING, INC | System and method for providing conditional access to virtual gaming items |
11717753, | Sep 29 2020 | ACTIVISION PUBLISHING, INC | Methods and systems for generating modified level of detail visual assets in a video game |
11724188, | Sep 29 2020 | ACTIVISION PUBLISHING, INC | Methods and systems for selecting a level of detail visual asset during the execution of a video game |
11741530, | Feb 23 2017 | Activision Publishing, Inc. | Flexible online pre-ordering system for media |
11794104, | Nov 11 2020 | Activision Publishing, Inc. | Systems and methods for pivoting player-controlled avatars in video games |
11794107, | Dec 30 2020 | ACTIVISION PUBLISHING, INC | Systems and methods for improved collision detection in video games |
11806626, | Dec 22 2017 | Activision Publishing, Inc. | Systems and methods for incentivizing player participation in bonus game play sessions |
11833423, | Sep 29 2020 | ACTIVISION PUBLISHING, INC | Methods and systems for generating level of detail visual assets in a video game |
11839814, | Dec 23 2019 | Activision Publishing, Inc. | Systems and methods for controlling camera perspectives, movements, and displays of video game gameplay |
11853439, | Dec 30 2020 | ACTIVISION PUBLISHING, INC | Distributed data storage system providing enhanced security |
11857876, | May 14 2015 | Activision Publishing, Inc. | System and method for providing dynamically variable maps in a video game |
11883745, | Nov 19 2018 | Activision Publishing, Inc. | Systems and methods for providing a tailored video game based on a player defined time period |
11896905, | May 14 2015 | Activision Publishing, Inc. | Methods and systems for continuing to execute a simulation after processing resources go offline |
11900101, | Aug 12 2015 | Comcast Cable Communications, LLC | Providing and using different update times for a resource |
11911689, | Dec 19 2017 | Activision Publishing, Inc. | Synchronized, fully programmable game controllers |
6920605, | Apr 01 1999 | International Business Machines Corporation | Method and system for rapid publishing and censoring information |
6976057, | Dec 27 1999 | LENOVO INNOVATIONS LIMITED HONG KONG | Content acquiring device, method, and system using valid terms to keep a cache up-to-date |
7032173, | Jun 16 2000 | Microsoft Technology Licensing, LLC | Automatic republication of data |
7039723, | Aug 31 2001 | Canon Medical Systems Corporation | On-line image processing and communication system |
7085878, | Sep 25 2001 | Intel Corporation | Transportation of main memory and intermediate memory contents |
7243136, | Jan 18 2000 | R2 SOLUTIONS LLC | Approach for managing and providing content to users |
7251676, | Dec 22 2000 | Siemens Healthcare GmbH | Method for handling an information item |
7293027, | Feb 26 2003 | Red Hat, Inc | Method for protecting history in a file system |
7318072, | Feb 26 2003 | Red Hat, Inc | History preservation in a computer storage system |
7363326, | Feb 26 2003 | Red Hat, Inc | Archive with timestamps and deletion management |
7467144, | Feb 26 2003 | Red Hat, Inc | History preservation in a computer storage system |
7478096, | Feb 26 2003 | Red Hat, Inc | History preservation in a computer storage system |
7496555, | Feb 26 2003 | Red Hat, Inc | History preservation in a computer storage system |
7571106, | Apr 09 2007 | TAMIRAS PER PTE LTD , LLC | Methods and apparatus for freshness and completeness of information |
7590704, | Jan 20 2004 | Microsoft Technology Licensing, LLC | Systems and methods for processing dynamic content |
7681116, | Jun 16 2000 | Microsoft Technology Licensing, LLC | Automatic republication of data |
7734595, | Feb 26 2003 | Red Hat, Inc | Communicating information between clients of a data repository that have deposited identical data items |
7747583, | Feb 26 2003 | Red Hat, Inc | History preservation in a computer storage system |
7809610, | Apr 09 2007 | TAMIRAS PER PTE LTD , LLC | Methods and apparatus for freshness and completeness of information |
7870104, | Feb 07 2005 | Hitachi, Ltd. | Storage system and storage device archive control method |
7912855, | Feb 26 2003 | Red Hat, Inc | History preservation in a computer storage system |
7930315, | Feb 26 2003 | Red Hat, Inc | History preservation in a computer storage system |
7937435, | Feb 21 2006 | RADWARE CANADA HOLDINGS INC | Identifying, storing, and retrieving context data for a network message |
7979397, | Feb 26 2003 | Red Hat, Inc | History preservation in a computer storage system |
7987197, | Feb 26 2003 | Red Hat, Inc | History preservation in a computer storage system |
8000259, | Sep 04 2009 | Viasat, Inc | Distributed cache—adaptive multicast architecture for bandwidth reduction |
8010627, | Sep 25 1998 | SPRINT COMMUNICATIONS COMPANY, L P | Virtual content publishing system |
8037127, | Feb 21 2006 | RADWARE CANADA HOLDINGS INC | In-line network device for storing application-layer data, processing instructions, and/or rule sets |
8055628, | Feb 26 2003 | Red Hat, Inc | History preservation in a computer storage system |
8082327, | Apr 02 2007 | Binu Pty Ltd | Systems methods and apparatuses for providing applications style functionality to a user |
8082328, | Sep 17 1999 | Ricoh Co., Ltd. | Method and apparatus for publishing documents over a network |
8095494, | Oct 16 2008 | International Business Machines Corporation | Rules-based cross-FSM transition triggering |
8095516, | Feb 26 2003 | Red Hat, Inc | History preservation in a computer storage system |
8149761, | Aug 29 2006 | Viasat, Inc | Incrementally increasing deployment of gateways |
8166114, | Feb 21 2006 | RADWARE CANADA HOLDINGS INC | Asynchronous context data messaging |
8180720, | Jul 19 2007 | AKAMAI TECHNOLOGIES, INC | Content delivery network (CDN) cold content handling |
8326949, | Apr 02 2007 | Binu Pty Ltd | Systems, methods and apparatuses for providing applications style functionality to a user |
8411798, | Nov 05 2008 | Viasat, Inc | Reducing receiver power dissipation |
8412536, | Apr 09 2007 | TAMIRAS PER PTE LTD , LLC | Methods and apparatus for freshness and completeness of information |
8458126, | Apr 15 2004 | CITICORP CREDIT SERVICES, INC USA | Methods and systems for updating web pages via a web data instant update utility |
8493881, | Sep 04 2009 | ViaSat, Inc. | Distributed cache—adaptive multicast architecture for bandwidth reduction |
8510400, | Feb 21 2006 | RADWARE CANADA HOLDINGS INC | Asynchronous context data messaging |
8533313, | Oct 01 2008 | Binu Pty Ltd | Systems, methods, and computer readable media for providing applications style functionality to a user |
8538328, | Sep 11 2008 | Viasat, Inc | Antenna and satellite alignment using beam projections |
8612585, | Feb 21 2006 | RADWARE CANADA HOLDINGS INC | In-line network device for storing application-layer data, processing instructions, and/or rule sets |
8634768, | Aug 29 2006 | Viasat, Inc | Redundant communication path for satellite communication data |
8660142, | Sep 25 2008 | Viasat, Inc | Scheduling virtual bandwidth requests |
8694734, | Jan 31 2009 | KYNDRYL, INC | Expiring virtual content from a cache in a virtual universe |
8700493, | Apr 09 2007 | TAMIRAS PER PTE LTD , LLC | Methods and apparatus for freshness and completeness of information |
8711758, | Aug 29 2006 | Viasat, Inc | Incrementally increasing deployment of gateways |
8725836, | Feb 07 2000 | Microsoft Corporation | Method and apparatus for content synchronization |
8730086, | Aug 26 2008 | Viasat, Inc | Weather detection using satellite communication signals |
8756342, | Feb 07 2000 | Microsoft Corporation | Method and apparatus for content synchronization |
9002988, | Apr 02 2007 | Binu Pty Ltd | Systems, methods and apparatuses for providing applications style functionality to a user |
9069732, | Dec 29 2011 | CHEGG, INC | Automated document conversion testing |
9091763, | Aug 26 2008 | Viasat, Inc | Weather detection using satellite communication signals |
9100404, | Oct 01 2008 | Binu Pty Ltd | Systems, methods, and computer readable media for providing applications style functionality to a user |
9104716, | Feb 26 2003 | Red Hat, Inc | History preservation in a computer storage system |
9130889, | Sep 04 2009 | Viasat, Inc | Distributed cache—adaptive multicast architecture for bandwidth reduction |
9292467, | Sep 16 2011 | RADWARE CANADA HOLDINGS INC | Mobile resource accelerator |
9344491, | Oct 01 2008 | Binu Pty Ltd | Systems, methods, and computer readable media for providing applications style functionality to a user |
9542501, | Jan 28 2011 | RADWARE CANADA HOLDINGS INC | System and method for presenting content in a client/server environment |
9542538, | Oct 04 2011 | Chegg, Inc. | Electronic content management and delivery platform |
9549039, | May 28 2010 | RADWARE CANADA HOLDINGS INC | Accelerating HTTP responses in a client/server environment |
9569410, | Aug 13 2012 | Chegg, Inc. | Multilayered document distribution in multiscreen systems |
9674256, | Oct 01 2008 | Binu Pty Ltd | Systems, methods, and computer readable media for providing applications style functionality to a user |
9792108, | Aug 12 2015 | Comcast Cable Communications, LLC | Scheme for managing last-modified information |
9906620, | May 05 2008 | RADWARE CANADA HOLDINGS INC | Extensible, asynchronous, centralized analysis and optimization of server responses to client requests |
9934161, | Jan 31 2009 | KYNDRYL, INC | Expiring virtual content from a cache in a virtual universe |
RE42952, | Nov 05 1999 | Vital Images, Inc. | Teleradiology systems for rendering and visualizing remotely-located volume data sets |
RE44336, | Nov 05 1999 | Vital Images, Inc. | Teleradiology systems for rendering and visualizing remotely-located volume data sets |
Patent | Priority | Assignee | Title |
5506902, | Apr 20 1993 | Sony Corporation | Data broadcasting system |
5734898, | Jun 24 1994 | IBM Corporation | Client-server computer system and method for updating the client, server, and objects |
5933849, | Apr 10 1997 | AT&T Properties, LLC; AT&T INTELLECTUAL PROPERTY II, L P | Scalable distributed caching system and method |
6006034, | Sep 05 1996 | FLEXERA SOFTWARE, INC | Systems and methods for automatic application version upgrading and maintenance |
6098093, | Mar 19 1998 | International Business Machines Corp. | Maintaining sessions in a clustered server environment |
6138152, | Jun 02 1998 | THE CHASE MANHATTAN BANK, AS COLLATERAL AGENT | Technique for effectively serving information objects through a communication network |
6148299, | Jun 14 1996 | Canon Kabushiki Kaisha | Selectively processing plurality of transactions using transaction identifiers that including committing, aborting updating and continuous updating content in a plurality of shared data |
6154811, | Apr 10 1997 | AT&T Properties, LLC; AT&T INTELLECTUAL PROPERTY II, L P | Scalable network object caching |
6170013, | Mar 27 1998 | RPX CLEARINGHOUSE LLC | Method and apparatus for controlling access to network information sources |
6182077, | Aug 19 1994 | Fujitsu Limited | Method and apparatus for confirming matching of data in a distributed processing system |
6205481, | Mar 17 1998 | ARRAY NETWORKS, INC | Protocol for distributing fresh content among networked cache servers |
6219675, | Jun 05 1997 | Microsoft Technology Licensing, LLC | Distribution of a centralized database |
6219676, | Aug 06 1999 | RPX Corporation | Methodology for cache coherency of web server data |
6292835, | Nov 26 1997 | IBM Corporation | Network bandwidth and object obsolescence sensitive scheduling method and apparatus for objects distributed broadcasting |
6321236, | May 27 1997 | PURE DATA SYSTEMS, LLC | Distributing database differences corresponding to database change events made to a database table located on a server computer |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Aug 20 1999 | International Business Machines Corporation | (assignment on the face of the patent) | / | |||
Sep 10 1999 | IYENGAR, ARUN KWANGIL | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 010361 | /0113 | |
Sep 10 1999 | CHALLENGER, JAMES ROBERT HAROLD | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 010361 | /0113 | |
Sep 10 1999 | WITTING, KAREN A | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 010361 | /0113 | |
Oct 08 1999 | FERSTAT, CAMERON DONALD | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 010361 | /0113 | |
Oct 27 1999 | REED, PAUL | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 010361 | /0113 | |
Dec 31 2012 | International Business Machines Corporation | ACTIVISION PUBLISHING, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 029900 | /0285 | |
Jan 31 2014 | ACTIVISION PUBLISHING, INC | BANK OF AMERICA, N A | SECURITY AGREEMENT | 032240 | /0257 | |
Oct 14 2016 | BANK OF AMERICA, N A | ACTIVISION ENTERTAINMENT HOLDINGS, INC | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 040381 | /0487 | |
Oct 14 2016 | BANK OF AMERICA, N A | BLIZZARD ENTERTAINMENT, INC | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 040381 | /0487 | |
Oct 14 2016 | BANK OF AMERICA, N A | ACTIVISION PUBLISHING, INC | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 040381 | /0487 | |
Oct 14 2016 | BANK OF AMERICA, N A | ACTIVISION BLIZZARD INC | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 040381 | /0487 |
Date | Maintenance Fee Events |
Sep 04 2003 | ASPN: Payor Number Assigned. |
Nov 20 2006 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Jan 29 2011 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Mar 09 2015 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Sep 09 2006 | 4 years fee payment window open |
Mar 09 2007 | 6 months grace period start (w surcharge) |
Sep 09 2007 | patent expiry (for year 4) |
Sep 09 2009 | 2 years to revive unintentionally abandoned end. (for year 4) |
Sep 09 2010 | 8 years fee payment window open |
Mar 09 2011 | 6 months grace period start (w surcharge) |
Sep 09 2011 | patent expiry (for year 8) |
Sep 09 2013 | 2 years to revive unintentionally abandoned end. (for year 8) |
Sep 09 2014 | 12 years fee payment window open |
Mar 09 2015 | 6 months grace period start (w surcharge) |
Sep 09 2015 | patent expiry (for year 12) |
Sep 09 2017 | 2 years to revive unintentionally abandoned end. (for year 12) |