IP Library Granted Patent US 7,587,669
Granted Patent B2
US 7,587,669 · App. 10/474,300 · Granted Sep 8, 2009

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 7,587,669
App. No.
10/474,300
Granted
Sep 8, 2009
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 (173)

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

(a) providing browsing means on a server for accepting a Web page from a Web server, said browsing means comprising Web page layout means for laying out said Web page in a two-dimensional virtual page, said Web page layout means determining what information is visible on said virtual page, said Web page layout means determining exact position of each content element within said Web page, and said browsing means creating a compressed stream containing said visible information and the position information of each of said content elements;

(b) providing client browsing means on a client system for accepting a compressed stream representing display pages, said stream comprising at least text and images found in said web page and position information for each content element found in said web page, wherein said text is accumulated into a string on said server and sent to said client in compressed form; and

(c) providing means on said server for sending said compressed stream to said client browsing means;

wherein said client browsing means decompresses said compressed stream and displays said visible information using said position information.

2. The process of claim 1 , wherein said browsing means comprises:

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

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

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

wherein said Web page layout means retrieves a style sheet, layout algorithms, and device constraints from said storage device for said supported client system; and

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

3. The process of claim 1 , wherein said step of providing browsing means further comprises the sub-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 3 , wherein said client browsing means accepts a URL from a user or determines a position or hotspot ID of the user's click or press on one or more of said display pages, wherein said client browsing means sends said URL, said position, or said hotspot ID to said browsing means, and wherein said browsing means accepts said URL, said position, or said hotspot ID from said client browsing means.

5. The process of claim 4 , wherein said step of providing browsing means further comprises the sub-steps of:

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

determining a location of said position or hotspot ID on said Web page using said view tree;

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

wherein if said script is associated with the location then executing the script and determining the resulting URL; and

requesting the Web page associated with said resulting URL or said associated URL from the appropriate server.

6. The process of claim 3 , wherein said step of providing browsing means further comprises the sub-step of:

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

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

wherein said client system's state information allows said browsing means to track the current state of said client system and the particular user.

7. A process for providing a cross platform Web browser that interacts with a plurality of client device types, comprising the steps of:

(a) providing browsing means on a server for accepting a Web page from a Web server;

said step of providing browsing means further comprising the sub-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;

providing Web page layout means for laying out said Web page in a two-dimensional virtual page;

wherein said Web page layout means determines what information is visible on said virtual page;

wherein said Web page layout means determines exact position of each content element within said Web page;

wherein said Web page layout means removes unnecessary structural information and retains visible information in said view tree; and

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

wherein said browsing means creates a compressed stream containing said DOM tree, said view tree and position information for each content element found in said web page;

(b) providing client browsing means on a client system for accepting said compressed streams; and

(c) providing means on said server for sending said compressed stream to said client browsing means;

wherein said client browsing means decompresses said compressed stream and displays said visible information using said DOM tree, said view tree and said position information.

8. The process of claim 7 , wherein said browsing means comprises:

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

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

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

wherein said Web page layout means retrieves a style sheet, layout algorithms, and device constraints from said storage device for said client system; and

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

9. The process of claim 7 , wherein said client browsing means accepts a URL from a user or determines a position or hotspot ID of the click or press on one or more of said display pages, wherein said client browsing means sends said URL, said position, or said hotspot ID to said browsing means, and wherein said browsing means accepts said URL, said position, or said hotspot ID from said client browsing means.

10. The process of claim 9 , wherein said step of providing browsing means further comprises the sub-steps of:

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

determining a location of said position or hotspot ID on said Web page using said view tree; and

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

wherein if the script is associated with the location then executing the script and determining the resulting URL; and

requesting the Web page associated with said resulting URL or said associated URL from the appropriate server.

11. The process of claim 7 , wherein said step of providing browsing means further comprising the sub-step of:

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

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

wherein said client system's state information allows said browsing means to track the current state of said client system and the particular user.

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

(a) browsing means on a server for accepting a Web page from a Web server, said browsing means further comprising Web page layout means for laying out said Web page in a two-dimensional virtual page, said Web page layout means determining what information is visible on said virtual page, and said Web page layout means determining exact position of each content element within said Web page;

wherein said browsing means creates a compressed stream containing said visible information and said position information;

(b) client browsing means on a client system for accepting a compressed stream representing display pages said compressed stream comprising at least text and images found in said web page and said position information, wherein said text and position information is accumulated into a string on said server and sent to said client in compressed form; and

(c) means on said server for sending said compressed stream to said client browsing means;

wherein said client browsing means decompresses said compressed stream and displays said visible information using said position information.

13. The apparatus of claim 12 , wherein said browsing means further comprises:

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

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

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

wherein said Web page layout means retrieves a style sheet, layout algorithms, and device constraints from said storage device for said supported client system; and

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

14. The apparatus of claim 12 , wherein said browsing means further comprises:

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

a module for creating a view tree using said DOM tree; and

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

15. The apparatus of claim 14 , wherein said client browsing means accepts a URL from a user or determines a position or hotspot ID of a user's click or press on one or more of said display pages, wherein said client browsing means sends said URLI said position, or said hotspot ID to said browsing means, and wherein said browsing means accepts said URL, said position, or said hotspot ID from said client browsing means.

16. The apparatus of claim 15 , wherein said browsing means further comprises:

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

a module for determining the location of said position or hotspot ID on said Web page using said view tree;

a module for finding a script or URL associated with the location using said DOM tree;

wherein if a script is associated with the location then executing the script and determining the resulting URL; and

a module for requesting the Web page associated with said resulting URL or said associated URL from the appropriate server.

17. The apparatus of claim 14 , wherein said browsing means further comprises:

a module for saving said client system's state information on said storage device for a particular user;

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

wherein said client system's state information allows said browsing means to track the current state of said client system and the particular user.

18. An apparatus for a cross platform Web browser that interacts with a plurality of client device types, comprising:

(a) browsing means on a server for accepting a Web page from a Web server;

said browsing means further comprising:

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

a module for creating a view tree using said DOM tree;

Web page layout means for laying out said Web page in a two-dimensional virtual page;

wherein said Web page layout means determines what information is visible on said virtual page;

wherein said Web page layout means determines exact position of each content element within said Web page;

wherein said Web page layout means removes unnecessary structural information and retains visible information in said view tree; and

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

wherein said browsing means creates a compressed stream containing said DOM tree, said view tree and position information for each content element found in said web page;

(b) client browsing means on a client system for accepting said compressed streams;

(c) means on said server for sending said compressed stream to said client browsing means; and

wherein said client browsing means decompresses said compressed stream and displays said visible information using said DOM tree, said view tree and said position information.

19. The apparatus of claim 18 , wherein said browsing means further comprises:

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

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

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

wherein said Web page layout means retrieves a style sheet, layout algorithms, and device constraints from said storage device for said client system; and

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

20. The apparatus of claim 18 , wherein said client browsing means accepts a URL from a user or determines a position or hotspot ID of a user's click or press on one or more of said display pages, wherein said client browsing means sends said URL, said position, or said hotspot ID to said browsing means, and wherein said browsing means accepts said URL, said position, or said hotspot ID from said client browsing means.

21. The apparatus of claim 20 , wherein said browsing means further comprises:

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

a module for determining the location of said position or hotspot ID on said Web page using said view tree;

a module for finding a script or URL associated with the location using said DOM tree;

wherein if a script is associated with the location then executing the script and determining the resulting URL; and

a module for requesting the Web page associated with said resulting URL or said associated URL from the appropriate server.

22. The apparatus of claim 18 , wherein said browsing means further comprises:

a module for saving said client system's state information on said storage device for a particular user;

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

wherein said client system's state information allows said browsing means to track the current state of said client system and the particular user.

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

(a) providing browsing means on a server for accepting a Web page from a Web server, said browsing means providing Web page layout means for laying out said Web page in a two-dimensional virtual page, said Web page layout means determining what information is visible on said virtual page, said Web page layout means determining exact position of each content element within said Web page; and

said browsing means creating a compressed stream containing said visible information and the position information;

(b) providing client browsing means on a client system for accepting a compressed stream representing display pages said compressed stream comprising at least text and images found in said web page and said position information, wherein said text is accumulated into a string on said server and sent to said client in compressed form; and

(c) providing means on said server for sending said compressed stream to said client browsing means;

wherein said client browsing means decompresses said compressed stream and displays said visible information using said position information.

24. The program storage medium of claim 23 , wherein said browsing means comprises:

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

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

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

wherein said Web page layout means retrieves a style sheet, layout algorithms, and device constraints from said storage device for said supported client system; and

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

25. The program storage medium of claim 23 , wherein said step of providing browsing means further comprising the sub-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.

26. The program storage medium of claim 25 , wherein said client browsing means accepts a URL from a user or determines a position or hotspot ID of the user's click or press on one or more of said display page, wherein said client browsing means sends said URL, said position, or said hotspot ID to said browsing means, and wherein said browsing means accepts said URL, said position, or said hotspot ID from said client browsing means.

27. The program storage medium of claim 26 , wherein said step of providing browsing means further comprising the sub-steps of:

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

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

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

wherein if a script is associated with the location then executing the script and determining the resulting URL; and

requesting the Web page associated with said resulting URL or said associated URL from the appropriate server.

28. The program storage medium of claim 23 , wherein said step of providing browsing means further comprising the step of:

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

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

wherein said client system's state information allows said browsing means to track the current state of said client system and the particular user.

29. A program storage medium readable by a computer, tangibly embodying a program of instructions executable by the computer to perform method steps for a cross platform Web browser that interacts with a plurality of client device types, comprising the steps of:

(a) providing browsing means on a server for accepting a Web page from a Web server;

said step of providing browsing means further comprising the sub-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;

providing Web page layout means for laying out said Web page in a two-dimensional virtual page;

wherein said Web page layout means determines what information is visible on said virtual page;

wherein said Web page layout means determines exact position of each content element within said Web page;

wherein said Web page layout means removes unnecessary structural information and retains visible information in said view tree; and

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

wherein said browsing means creates a compressed stream containing said DOM tree, said view tree and position information for each content element found in said web page;

(b) providing client browsing means on a client system for accepting said compressed streams; and

(c) providing means on said server for sending said compressed stream to said client browsing means;

wherein said client browsing means decompresses said compressed stream and displays said visible information using said DOM tree, said view tree and said position information.

30. The program storage medium of claim 29 , wherein said browsing means comprises:

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

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

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

wherein said Web page layout means retrieves a style sheet, layout algorithms, and device constraints from said storage device for said client system; and

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

31. The program storage medium of claim 29 , wherein said client browsing means accepts a URL from a user or determines a position or hotspot ID of a user's click or press on one of more of said display pages, wherein said client browsing means sends said URL, said position, or said hotspot ID to said browsing means, and wherein said browsing means accepts said URL, said position, or said hotspot ID from said client browsing means.

32. The program storage medium of claim 31 , wherein said step of providing browsing means further comprising the steps of:

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

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

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

wherein if a script is associated with the location then executing the script and determining the resulting URL; and

requesting the Web page associated with said resulting URL or said associated URL from the appropriate server.

33. The program storage medium of claim 29 , wherein said step of providing browsing means further comprises the sub-step of:

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

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

wherein said client system's state information allows said browsing means to track the current state of said client system and the particular user.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 21, 2013
From: MARATHON SOLUTIONS LLC
To: MERCURY KINGDOM ASSETS LIMITED
Reel/Frame 030453/0331 →
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: 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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED ON REEL 019711 FRAME 0316. ASSIGNOR(S) HEREBY CONFIRMS THE NATURE OF CONVEYANCE IS CHANGE OF NAME. Recorded Mar 25, 2009
From: AMERICA ONLINE, INC.
To: AOL LLC, A DELAWARE LIMITED LIABILITY COMPANY
Reel/Frame 022451/0186 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 17, 2007
From: AMERICA ONLINE, INC.
To: AOL LLC, A DELAWARE LIMITED LIABILITY COMPANY
Reel/Frame 019711/0316 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2004
From: RANA, AHAD
To: AMERICA ONLINE, INCORPORATED
Reel/Frame 015445/0098 →