IP Library Granted Patent US 9,626,342
Granted Patent B2
US 9,626,342 · App. 13/724,453 · Granted Apr 18, 2017

Dynamic page generator

Inventors: Farzad Nazem (Redwood City, CA); Ashvinkumar P. Patel (Milpitas, CA)
Assignee: EXCALIBUR IP, LLP
G06F17/2247G06F17/2288G06F17/3087G06F17/30893G06Q30/02H04L67/18H04W4/02Y10S707/99933Y10S707/99945
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,626,342
App. No.
13/724,453
Granted
Apr 18, 2017
Kind
B2
Abstract

An custom page server is provided with user preferences organized into templates stored in compact data structures and the live data used to fill the templates stored local to the page server which is handing user requests for custom pages. One process is executed on the page server for every request. The process is provided a user template for the user making the request, where the user template is either generated from user preferences or retrieved from a cache of recently used user templates. Each user process is provided access to a large region of shared memory which contains all of the live data needed to fill any user template. Typically, the pages served are news pages, giving the user a custom selection of stock quotes, news headlines, sports scores, weather, and the like. With the live data stored in a local, shared memory, any custom page can be built within the page server, eliminating the need to make requests from other servers for portions of the live data. While the shared memory might include RAM (random access memory) and disk storage, in many computer systems, it is faster to store all the live data in RAM.

Claims (70)

1. A method comprising:

in response to a request for a user's customized web page:

generating, via at least one server computer, a template program unique to the user, the template program that is unique to the user is for use in forming the user's customized web page, the template program that is unique to the user is generated using customization information unique to the user and a global template that is generic to a plurality of users;

executing, via the at least one server computer, the user's template program to generate the user's customized web page, the user's customized web page including real-time information selected for the user's customized web page based on the customization information unique to the user;

serving, via the at least one server computer, the user's customized web page;

in response to receiving a subsequent request for the user's customized web page;

receiving, via the at least one server computer, the template program that is unique to the user from one of at least two locations, the location determined from the frequency of the request for the user's customized web page;

executing, via the at least one server computer, the received template program that is unique to the user to generate the user's customized web page, the user's customized web page including real-time information selected for the user's customized web page in response to the subsequent request and based on the customization information unique to the user; and

serving, via the at least one server computer, the user's customized web page.

2. The method of claim 1 , further comprising:

discarding, via the at least one server computer, the user's customized web page after serving the user's customized web page.

3. The method of claim 1 , further comprising:

storing, via the at least one server computer, the template program that is unique to the user in temporary storage.

4. The method of claim 3 , the receiving further comprising:

in response to determining that the template program that is unique to the user exists in the temporary storage, retrieving the template program that is unique to the user from the temporary storage; and

in response to determining that the template program that is unique to the user no longer exists in the temporary storage, repeating the generating to generate the template program unique to the user using the customization information unique to the user and the global template that is generic to the plurality of users.

5. The method of claim 3 , further comprising:

periodically performing, via the at least one server computer, a garbage collection to flush the user's template program from the temporary storage based on the frequency of the request for the user's customized web page.

6. The method of claim 3 , further comprising:

receiving, via the at least one server computer, updated customization information unique to the user; and

performing, via the at least one server computer, a garbage collection to flush the user's template program from the temporary storage.

7. The method of claim 1 , the user template that is unique to the user further comprising advertisement selection information for use in selecting one or more advertisements for inclusion in the user's customized web page in addition to the real-time information selected for the user's customized web page.

8. The method of claim 7 , the advertisement selection information comprising time zone and demographic information for the user.

9. A system comprising:

at least one server computer comprising one or more processors to execute and memory to store instructions for performing a process comprising:

in response to a request for a user's customized web page:

generating a template program unique to the user, the template program that is unique to the user is for use in forming the user's customized web page, the template program that is unique to the user is generated using customization information unique to the user and a global template that is generic to a plurality of users;

executing the user's template program to generate the user's customized web page, the user's customized web page including real-time information selected for the user's customized web page based on the customization information unique to the user;

serving the user's customized web page;

in response to receiving a subsequent request for the user's customized web page;

receiving the template program that is unique to the user from one of at least two locations, the location determined from the frequency of the request for the user's customized web page;

executing the received template program that is unique to the user to generate the user's customized web page, the user's customized web page including real-time information selected for the user's customized web page in response to the subsequent request and based on the customization information unique to the user; and

serving the user's customized web page.

10. The system of claim 9 , the process further comprising:

discarding the user's customized web page after serving the user's customized web page.

11. The system of claim 9 , the process further comprising:

storing the template program that is unique to the user in temporary storage.

12. The system of claim 11 , the receiving further comprising:

in response to determining that the template program that is unique to the user exists in the temporary storage, retrieving the template program that is unique to the user from the temporary storage; and

in response to determining that the template program that is unique to the user no longer exists in the temporary storage, repeating the generating to generate the template program unique to the user using the customization information unique to the user and the global template that is generic to the plurality of users.

13. The system of claim 11 , the process further comprising:

periodically performing a garbage collection to flush the user's template program from the temporary storage based on the frequency of the request for the user's customized web page.

14. The system of claim 11 , the process further comprising:

receiving updated customization information unique to the user; and

performing a garbage collection to flush the user's template program from the temporary storage.

15. The system of claim 9 , the user template that is unique to the user further comprising advertisement selection information for use in selecting one or more advertisements for inclusion in the user's customized web page in addition to the real-time information selected for the user's customized web page.

16. The system of claim 15 , the advertisement selection information comprising time zone and demographic information for the user.

17. A computer-readable non-transitory storage medium for tangibly storing thereon computer-readable instructions that when executed cause at least one server computer to perform a process comprising:

in response to a request for a user's customized web page:

generating a template program unique to the user, the template program that is unique to the user is for use in forming the user's customized web page, the template program that is unique to the user is generated using customization information unique to the user and a global template that is generic to a plurality of users;

executing the user's template program to generate the user's customized web page, the user's customized web page including real-time information selected for the user's customized web page based on the customization information unique to the user;

serving the user's customized web page;

in response to receiving a subsequent request for the user's customized web page;

receiving the template program that is unique to the user from one of at least two locations, the location determined from the frequency of the request for the user's customized web page;

executing the received template program that is unique to the user to generate the user's customized web page, the user's customized web page including real-time information selected for the user's customized web page in response to the subsequent request and based on the customization information unique to the user; and

serving the user's customized web page.

18. The computer-readable non-transitory storage medium of claim 17 , the process further comprising:

discarding the user's customized web page after serving the user's customized web page.

19. The computer-readable non-transitory storage medium of claim 17 , the process further comprising:

storing the template program that is unique to the user in temporary storage.

20. The computer-readable non-transitory storage medium of claim 19 , the receiving further comprising:

in response to determining that the template program that is unique to the user exists in the temporary storage, retrieving the template program that is unique to the user from the temporary storage; and

in response to determining that the template program that is unique to the user no longer exists in the temporary storage, repeating the generating to generate the template program unique to the user using the customization information unique to the user and the global template that is generic to the plurality of users.

21. The computer-readable non-transitory storage medium of claim 19 , the process further comprising:

periodically performing a garbage collection to flush the user's template program from the temporary storage based on the frequency of the request for the user's customized web page.

22. The computer-readable non-transitory storage medium of claim 19 , the process further comprising:

receiving updated customization information unique to the user; and

performing a garbage collection to flush the user's template program from the temporary storage.

23. The computer-readable non-transitory storage medium of claim 17 , the user template that is unique to the user further comprising advertisement selection information for use in selecting one or more advertisements for inclusion in the user's customized web page in addition to the real-time information selected for the user's customized web page.

24. The computer-readable non-transitory storage medium of claim 23 , the advertisement selection information comprising time zone and demographic information for the user.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 4, 2018
From: EXCALIBUR IP, LLC
To: DIGI PORTAL LLC
Reel/Frame 045981/0735 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 31, 2018
From: YAHOO HOLDINGS, INC.
To: EXCALIBUR IP, LLC
Reel/Frame 045954/0964 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2017
From: YAHOO! INC.
To: YAHOO HOLDINGS, INC.
Reel/Frame 042963/0211 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2016
From: YAHOO! INC.
To: EXCALIBUR IP, LLC
Reel/Frame 038950/0592 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2016
From: EXCALIBUR IP, LLC
To: YAHOO! INC.
Reel/Frame 038951/0295 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2016
From: YAHOO! INC.
To: EXCALIBUR IP, LLC
Reel/Frame 038383/0466 →
Continuity (5)
Continuation 11842095 · Aug 20, 2007
Continuation 11656636 · Jan 22, 2007
Continuation 09393718 · Sep 10, 1999
Continuation 08873975 · Jun 12, 1997
Related Publication 20130179277A1 · Jul 11, 2013