IP Library Granted Patent US 8,635,254
Granted Patent B2
US 8,635,254 · App. 10/637,757 · Granted Jan 21, 2014

Maintaining independent states for multiple web browser instances

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,635,254
App. No.
10/637,757
Granted
Jan 21, 2014
Kind
B2
Abstract

A method includes receiving a request for a target Web page, the request containing a session identifier (ID) associated with an instance of a Web browser, and determining if the session ID is new or existing. If the session ID is new, the method includes creating a window session object, and initializing the window session object with data defining a state of the instance of the Web browser. If the session ID is existing, the method includes accessing a stored window session object using the session ID, the stored window session object containing data defining a state of the instance of the Web browser, generating the target Web page based on the data, and providing the target Web page to the Web browser.

Claims (105)

1. A method, performed by a server, for use in maintaining states of instances of a Web browser on a device that is configured for communicating with the server, the method comprising:

receiving, from the device, a request for a first Web page, the request comprising a first URL-encoded session identifier (ID) associated with a first instance of the Web browser;

storing, in the server, a first session object associated with the first URL-encoded session ID, the first session object containing data defining a state of the first instance of the Web browser, wherein the first instance of the Web browser comprises a first Web browser window;

generating, in the server, the first Web page using the data in the first session object;

receiving, from the device, a request for a second Web page, the request comprising a second URL-encoded session identifier (ID) associated with a second instance of the Web browser, wherein the second instance of the Web browser comprises a second Web browser window;

storing, in the server, a second session object associated with the second session ID, the second session object containing data defining a state of the second instance of the Web browser;

generating, in the server, the second Web page using the data in the second session object; and

outputting, from the server to the device, the first Web page and the second Web page; and

maintaining, via the first session object, a state of the first Web page such that the state of the first Web page is not affected when a state of the second Web page is changed in response to submission of information in the second Web page to the server, thereby preserving the state of the first instance of the Web browser; or maintaining, via the second session object, the state of the second Web page such that the state of the second Web page is not affected when the state of the first Web page is changed in response to submission of information in the first Web page to the server, thereby preserving the state of the second instance of the Web browser.

2. The method of claim 1 , wherein storing the first session object comprises:

creating the first session object; and

initializing the first session object with data; and

wherein storing the second session object comprises:

creating the second session object; and

initializing the second session object with data.

3. The method of claim 1 , wherein the first session object and the second session object are stored in association with a HyperText Transfer Protocol (HTTP) session object, the HTTP session object containing state data that relates to an interaction between the Web browser and a Web site that contains the first Web page and the second Web page.

4. The method of claim 1 , wherein the request for the first Web page is issued from an original Web page, and the method further comprises:

providing the original Web page to the Web browser, the original Web page containing a control feature that contains the first URL-encoded session ID, the control feature being used to issue the request for the first Web page.

5. The method of claim 4 , wherein the control feature comprises at least one of a menu item, a hyperlink, a button and an image.

6. The method of claim 1 , wherein each request comprises a HyperText Transfer Protocol (HTTP) command.

7. The method of claim 1 , wherein the first session object is used to maintain the state of the first Web page by:

accessing the first session object;

updating the first Web page based on data in the first session object; and

providing the first Web page to the first instance of the Web browser; and

wherein the second session object is used to maintain the state of the second Web page by:

accessing the second session object;

updating the second Web page based on data in the second session object; and

providing the second Web page to the second instance of the Web browser.

8. The method of claim 7 , further comprising:

determining if the first URL-encoded session ID is a new or existing;

wherein accessing the first session object is performed only if the first URL-encoded session ID is existing; and

determining if the second URL-encoded session ID is a new or existing; and

wherein accessing the second session object is performed only if the second URL-encoded session ID is existing.

9. The method of claim 1 , wherein the state of the first Web page when changed is different from the state of the second Web page when changed, and wherein the request for the first Web page and the request for the second Web page comprise parts of a same interaction between the Web browser and the server.

10. A non-transitory machine-readable medium that stores executable instructions for use in maintaining states of instances of a Web browser on a device, the instructions for causing a server, which is in communication with, and remote from, the device to:

receive, from the device, a request for a first Web page, the request comprising a first URL-encoded session identifier (ID) associated with a first instance of the Web browser;

store, in the server, a first session object associated with the first URL-encoded session ID, the first session object containing data defining a state of the first instance of the Web browser, wherein the first instance of the Web browser comprises a first Web browser window;

generate, in the server, the first Web page using the data in the first session object;

receive, from the device, a request for a second Web page, the request comprising a second URL-encoded session identifier (ID) associated with a second instance of the Web browser, wherein the second instance of the Web browser comprises a second Web browser window;

store, in the server, a second session object associated with the second URL-encoded session ID, the second session object containing data defining a state of the second instance of the Web browser;

generate, in the server, the second Web page using the data in the second session object;

output, from the server to the device, the first Web page and the second Web page; and

maintain, via the first session object, a state of the first Web page such that the state of the first Web page is not affected when a state of the second Web page is changed in response to submission of information in the second Web page to the server, thereby preserving the state of the first instance of the Web browser; or maintain, via the second session object, the state of the second Web page such that the state of the second Web page is not affected when the of the first Web page is changed in response to submission of information in the first Web page to the server, thereby preserving the state of the second instance of the Web browser.

11. The non-transitory machine-readable medium of claim 10 , wherein storing the first session object comprises:

creating the first session object; and

initializing the first session object with data; and

wherein storing the second session object comprises:

creating the second session object; and

initializing the second session object with data.

12. The non-transitory machine-readable medium of claim 10 , wherein the first session object and the second session object are stored in association with a HyperText Transfer Protocol (HTTP) session object, the HTTP session object containing state data that relates to an interaction between the Web browser and a Web site that contains the first Web page and the second Web page.

13. The non-transitory machine-readable medium of claim 10 , wherein the request for the first Web page is issued from an original Web page, and the machine-readable medium further comprises instructions that cause the server to:

provide the original Web page to the Web browser, the original Web page containing a control feature that contains the first URL-encoded session ID, the control feature being used to issue the request for the first Web page.

14. The non-transitory machine-readable medium of claim 13 , wherein the control feature comprises at least one of a menu item, a hyperlink, a button and an image.

15. The non-transitory machine-readable medium of claim 10 , wherein each request comprises a HyperText Transfer Protocol (HTTP) command.

16. The non-transitory machine-readable medium of claim 10 , wherein the first session object is used to maintain the state of the first Web page by:

accessing the first session object;

updating the first Web page based on data in the first session object; and

providing the first Web page to the first instance of the Web browser; and

wherein the second session object is used to maintain the state of the second Web page by:

accessing the second session object;

updating the second Web page based on data in the second session object; and

providing the second Web page to the second instance of the Web browser.

17. The non-transitory machine-readable medium of claim 16 , further comprising instructions that cause the server to:

determine if the first URL-encoded session ID is a new or existing;

wherein accessing the first session object is performed only if the first URL-encoded session ID is existing;

determine if the second URL-encoded session ID is a new or existing; and

wherein accessing the second session object is performed only if the second URL-encoded session ID is existing.

18. The non-transitory machine-readable medium of claim 10 , wherein the state of the first Web page when changed is different from the state of the second Web page when changed, and wherein the request for the first Web page and the request for the second Web page comprise parts of a same interaction between the Web browser and the server.

19. A server for use in maintaining states of instances of a Web browser on a device that is in communication with, and remote from, the server, the server comprising:

memory that stores executable instructions; and

a processor to execute the instructions to:

receive, from the device, a request for a first Web page, the request comprising a first URL-encoded session identifier (ID) associated with a first instance of the Web browser;

store, in the server, a first session object associated with the first URL-encoded session ID, the first session object containing data defining a state of the first instance of the Web browser, wherein the first instance of the Web browser comprises a first Web browser window;

generate, in the server, the first Web page using the data in the first session object;

receive, from the device, a request for a second Web page, the request comprising a second URL-encoded session identifier (ID) associated with a second instance of the Web browser;

store, in the server, a second session object associated with the second URL-encoded session ID, the second session object containing data defining a state of the second instance of the Web browser, wherein the second instance of the Web browser comprises a second Web browser window;

generate, in the server, the second Web page using the data in the second session object;

output, from the server to the device, the first Web page and the second Web page; and

maintain, via the first session object, a state of the first Web page such that the state of the first Web page is not affected when a state of the second Web page is changed in response to submission of information in the second Web page to the server, thereby preserving the state of the first instance of the Web browser; or maintain, via the second session object, the state of the second Web page such that the state of the second Web page is not affected when the state of the first Web page is changed in response to submission of information in the first Web page to the server, thereby preserving the state of the second instance of the Web browser.

20. The server of claim 19 , wherein storing the first session object comprises:

creating the first session object; and

initializing the first session object with data; and

wherein storing the second session object comprises:

creating the second session object; and

initializing the second session object with data.

21. The server of claim 19 , wherein the first session object and the second session object are stored in association with a HyperText Transfer Protocol (HTTP) session object, the HTTP session object containing state data that relates to an interaction between the Web browser and a Web site that contains the first Web page and the second Web page.

22. The server of claim 19 , wherein the request for the first Web page is issued from an original Web page, and the processor is configured to execute instructions to:

provide the original Web page to the Web browser, the original Web page containing a control feature that contains the first URL-encoded session ID, the control feature being used to issue the request for the first Web page.

23. The server of claim 22 , wherein the control feature comprises at least one of a menu item, a hyperlink, a button and an image.

24. The server of claim 19 , wherein each request comprises a HyperText Transfer Protocol (HTTP) command.

25. The server of claim 19 , wherein the processor is configured to execute instructions to receive a request for a target Web page, the request comprising a URL-encoded session identifier (ID) associated with an instance of a Web browser;

wherein the first session object is used to maintain the state of the first Web page by:

accessing the first session object;

updating the first Web page based on data in the first session object; and

providing the first Web page to the first instance of the Web browser; and

wherein the second session object is used to maintain the state of the second Web page by:

accessing the second session object;

updating the second Web page based on data in the second session object; and

providing the second Web page to the second instance of the Web browser.

26. The server of claim 25 , wherein the processor is configured to execute instructions to:

determine if the first URL-encoded session ID is a new or existing;

wherein accessing the first session object is performed only if the first URL-encoded session ID is existing; and

determine if the second URL-encoded session ID is a new or existing;

wherein accessing the second session object is performed only if the second URL-encoded session ID is existing.

27. The server of claim 19 , wherein the state of the first Web page when changed is different from the state of the second Web page when changed, and wherein the request for the first Web page and the request for the second Web page comprise parts of a same interaction between the Web browser and the server.

Assignments (15)
SECURITY INTEREST Recorded Sep 13, 2018
From: PTC INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 047480/0888 →
SECURITY INTEREST Recorded Nov 4, 2015
From: PTC INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 037046/0930 →
MERGER Recorded Sep 2, 2015
From: AXEDA CORPORATION
To: PTC INC.
Reel/Frame 036480/0840 →
RELEASE OF SECURITY INTEREST Recorded Aug 25, 2014
From: COMERICA BANK
To: AXEDA CORPORATION
Reel/Frame 033608/0704 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECTLY RECORDED ASSIGNEE: AXEDA SYSTEMS OPERATION COMPANY INC. PREVIOUSLY RECORDED ON REEL 015067 FRAME 0211. ASSIGNOR(S) HEREBY CONFIRMS THE CORRECT ASSIGNEE: AXEDA SYSTEMS OPERATING COMPANY INC. Recorded Dec 17, 2013
From: HARVEY, MATTHEW; MACDONALD, JARED; BESKROWNI, ANDRE; SPIEWAK, JOSHUA
To: AXEDA SYSTEMS OPERATING COMPANY INC.
Reel/Frame 031835/0544 →
SECURITY AGREEMENT Recorded Jul 24, 2012
From: AXEDA CORPORATION
To: COMERICA BANK
Reel/Frame 028629/0538 →
RELEASE OF SECURITY INTEREST Recorded Jul 17, 2012
From: MMV CAPITAL PARTNERS INC.
To: AXEDA CORPORATION
Reel/Frame 028563/0446 →
RELEASE OF SECURITY INTEREST Recorded Jul 16, 2012
From: SILICON VALLEY BANK
To: AXEDA CORPORATION
Reel/Frame 028558/0744 →
SECURITY AGREEMENT Recorded Oct 24, 2006
From: AXEDA CORPORATION
To: SILICON VALLEY BANK
Reel/Frame 018420/0790 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2005
From: AXEDA SYSTEMS OPERATING COMPANY, INC.
To: AXEDA CORPORATION
Reel/Frame 016875/0827 →
RELEASE OF SECURITY INTEREST IN TRADEMARKS AND PATENTS Recorded Dec 8, 2005
From: LAURUS MATER FUND, LTD.
To: AXEDA SYSTEMS OPERATING COMPANY, INC.; AXEDA IP, INC.; AXEDA SYSTEMS INC.
Reel/Frame 016871/0043 →
SECURITY AGREEMENT Recorded Sep 19, 2005
From: AXEDA SYSTEMS OPERATING COMPANY, INC.
To: LAURUS MASTER FUND, LTD.
Reel/Frame 016551/0813 →
GRANT OF SECURITY INTEREST IN PATENTS AND TRADEMARKS Recorded Jul 19, 2005
From: AXEDA SYSTEMS, INC.; AXEDA SYSTEMS OPERATING COMPANY, INC.; AXEDA IP, INC.
To: JMI EQUITY FUND V, L.P.; JMI EQUITY FUND V (AI), L.P.
Reel/Frame 016274/0846 →
CHANGE OF NAME Recorded Jan 28, 2005
From: EMATION, INC.
To: AXEDA SYSTEMS OPERATING COMPANY, INC.
Reel/Frame 015634/0671 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2004
From: HARVEY, MATTHEW; MACDONALD, JARED; BESKROWNI, ANDRE; SPIEWAK, JOSHUA
To: AXEDA SYSTEMS OPERATION COMPANY INC.
Reel/Frame 015067/0211 →