IP Library Granted Patent US 8,874,637
Granted Patent B2
US 8,874,637 · App. 12/535,550 · Granted Oct 28, 2014

Server-based browser system

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 8,874,637
App. No.
12/535,550
Granted
Oct 28, 2014
Kind
B2
Abstract

A server-based browser system provides a server-based browser and a client system browser. The client browser reports the position of a user click on its display screen, hotspot ID, or URL to the server-side browser which retrieves a Document Object Model (DOM) model and view tree for the client and finds the location on the Web page that the user clicked on using the coordinates or hotspot ID received from the client. If there is a script associated with the location, it is executed and the resulting page location is requested from the appropriate server. If there is a URL associated with the location, it is requested from the appropriate server. The response Web page HTML definition is parsed and a DOM tree model is created which is used to create a view tree model. The server-side browser retrieves a style sheet, layout algorithms, and device constraints for the client device and lays out the view model using them onto a virtual page and determines the visual content. Textual and positional information are highly compressed and formatted into a stream and sent to the client browser which decodes the stream and displays the page to the user using the textual and positional information.

Claims (89)

1. A process for a server-based Web browser that interacts with a plurality of client device types, comprising the steps of:

receiving a navigation request from a client-based browser operating on a client system, said navigation request including display screen coordinates corresponding to the position of a user's pointing device at a time the user clicks the pointing device;

identifying a web page associated with said navigation request based at least in part on the included display screen coordinates;

requesting said web page from a web server; receiving said web page from said web server;

creating a layout of said web page received from said web server by determining a plurality of content elements present in said web page and determining a position of each of said plurality of content elements within said web page;

wherein the position of said each content element within said web page is represented by position data comprising two-dimensional coordinates;

creating a compressed stream containing said plurality of content elements and the position data representing the location to display each of said plurality of content elements;

sending said compressed stream to a client-based browser that accepts said compressed stream;

saving client system state information on a storage device for a particular user;

wherein said client system state information includes Javascripts and cookies; and

wherein said client system state information allows said server-based browser to track the current state of said client-based browser and the particular user.

2. The process of claim 1 , further comprising the steps of:

providing a database of style sheets on a storage device for supported client devices;

providing a database of layout algorithms on said storage device for supported client devices;

providing a database of device constraint information on said storage device for supported client devices;

wherein said server-based browser retrieves a style sheet, layout algorithms, and device constraints from said storage device for said client system; and

wherein said server-based browser lays out said Web page based on said client system's style sheet, layout algorithms, and device constraints.

3. The process of claim 1 , further comprising the steps of:

parsing said Web page's HTML code to create a Document Object Model (DOM) tree;

creating a view tree using said DOM tree; and

storing said DOM tree and said view tree on a storage device for said client system.

4. The process of claim 1 , further comprising the steps of:

retrieving a DOM tree and view tree from said storage device for said client system;

determining a location based on said coordinates using said view tree;

finding a script associated with said location using said DOM tree;

wherein if a script is associated with said location then executing said script and determining a uniform resource locator (URL); and

requesting said Web page associated with said URL from said web server.

5. The process of claim 1 , wherein:

said compressed stream includes no hyperlinks; and

said compressed stream contains tags, said tags defining said layout of said plurality of content elements.

6. A hardware apparatus for a server-based Web browser that interacts with a plurality of client device types, comprising:

a database of layout algorithms associated with said plurality of client device types;

a database of style sheets associated with said plurality of client device types;

a server-based browser for creating a layout of a web page received from a web server operating on a client system of a particular client device type by retrieving device layout algorithms associated with said particular client device type from said database of layout algorithms and retrieving style sheets associated with said particular client device type from said database of style sheets, determining a plurality of content elements present in said web page, and determining a position of each of said plurality of content elements within said web page based on the layout algorithms and the style sheets;

wherein said position of said each content element within said web page is represented by position data comprising two-dimensional coordinates;

wherein said server-based browser creates a compressed stream containing said plurality of content elements and provides the compressed stream to said client-based browser, said position data representing the location to display each of said plurality of content elements;

wherein said server-based browser further comprises:

a module for saving a client system state on a storage device associated with said client;

wherein said client system state includes Javascripts and cookies; and

wherein said client system state allows said server-based browser to track a current state of said client system.

7. The apparatus of claim 6 , said server-based browser further comprising:

a database of device constraints associated with said plurality of client device types;

wherein said server-based browser retrieves device constraints from said database of device constraints based on said particular client device type; and

wherein said server-based browser lays out said web page based said style sheets, said layout algorithms, and said device constraints.

8. The apparatus of claim 6 , said server-based browser further comprising:

a processor programmed for parsing Web page HTML code to create a Document Object Model (DOM) tree;

a processor programmed for creating a view tree using said DOM tree; and

a processor programmed for storing said DOM tree and said view tree on a storage device for said client system.

9. The apparatus of claim 8 ,

wherein said server-based browser receives from a client-based browser a position of a user selection on a display page.

10. The apparatus of claim 9 , wherein said server-based browser further comprises:

a processor programmed for retrieving a DOM tree and view tree from said storage device for said client system;

a processor programmed for determining a location of said position or hotspot ID on said web page using said view tree;

a processor programmed for finding a script associated with the location using said DOM tree;

wherein if a script is associated with said location then executing said script and determining a uniform resource locator (URL); and

a processor programmed for requesting said web page associated with said URL from the web server.

11. The apparatus of claim 6 , wherein said compressed stream includes no hyperlinks.

12. The apparatus of claim 6 , wherein said server-based browser further comprising receiving a navigation request from said client-based browser.

13. A non-transitory program storage medium readable by a computer, embodying a program of instructions executable by the computer to perform a method for a server-based web browser that interacts with a plurality of client device types, comprising the steps of:

receiving a navigation request from a client-based browser operating on a client system, said navigation request including display screen coordinates corresponding to the position of a user's pointing device at a time the user clicks the pointing device;

identifying a web page associated with said navigation request based at least in part on the included display screen coordinates;

requesting said web page from a web server;

receiving a web page from a web server;

creating a layout of said web page received from said web server by determining a plurality of content elements present in said web page and determining a position of each of said plurality of content elements within said web page;

wherein the position of said each content element within said web page is represented by position data comprising two-dimensional coordinates;

creating a compressed stream containing said plurality of content elements and the position data representing the location to display of each of said plurality of content elements;

sending said compressed stream to a client-based browser that accepts said compressed stream;

saving client system state information on a storage device;

wherein said client system state information includes Javascripts and cookies; and

wherein said client system state information allows said sever-based browser to track a current state of said client system.

14. The program storage medium of claim 13 ,

said method further comprising the steps of:

retrieving a style sheet from a database of style sheets;

retrieving layout algorithms from a database of layout algorithms;

retrieving device constraint information from a database of device constraint information;

wherein said server-based browser lays out said web page based on style sheet, layout algorithms, and device constraints associated with a client device type associated with the client system.

15. The program storage medium of claim 13 ,

said method further comprising the steps of:

parsing said Web page's HTML code to create a Document Object Model (DOM) tree;

creating a view tree using said DOM tree; and

storing said DOM tree and said view tree on a storage device associated with said client system.

16. The program storage medium of claim 13 ,

said method further comprising the steps of:

retrieving a DOM tree and view tree from a storage device associated with said client system;

determining the location of said position on said Web page using said view tree;

finding a script associated with the location using said DOM tree;

executing said script to determine a uniform resource locator (URL); and

requesting the web page associated with said URL from the web server.

17. The program storage medium of claim 13 , wherein said compressed stream includes no hyperlinks.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 7, 2014
From: MARATHON SOLUTIONS LLC
To: MERCURY KINGDOM ASSETS LIMITED
Reel/Frame 031904/0218 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 26, 2013
From: MARATHON SOLUTIONS LLC
To: MERCURY KINGDOM ASSETS LIMITED
Reel/Frame 030299/0547 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2012
From: AOL INC.
To: MARATHON SOLUTIONS LLC
Reel/Frame 028704/0043 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 16, 2010
From: BANK OF AMERICA, N A
To: AOL INC; AOL ADVERTISING INC; GOING INC; LIGHTNINGCAST LLC; MAPQUEST, INC; NETSCAPE COMMUNICATIONS CORPORATION; QUIGO TECHNOLOGIES LLC; SPHERE SOURCE, INC; TACODA LLC; TRUVEO, INC; YEDDA, INC
Reel/Frame 025323/0416 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2009
From: RANA, AHAD
To: AMERICA ONLINE, INC.
Reel/Frame 023718/0680 →
CHANGE OF NAME Recorded Dec 30, 2009
From: AMERICA ONLINE, INC.
To: AOL LLC
Reel/Frame 023719/0917 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2009
From: AOL LLC
To: AOL INC.
Reel/Frame 023750/0210 →
SECURITY AGREEMENT Recorded Dec 14, 2009
From: AOL INC.; AOL ADVERTISING INC.; BEBO, INC.; ICQ LLC; GOING, INC.; LIGHTNINGCAST LLC; MAPQUEST, INC.; NETSCAPE COMMUNICATIONS CORPORATION; QUIGO TECHNOLOGIES LLC; SPHERE SOURCE, INC.; TACODA LLC; TRUVEO, INC.; YEDDA, INC.
To: BANK OF AMERICAN, N.A. AS COLLATERAL AGENT
Reel/Frame 023649/0061 →