Title:
METHOD AND SYSTEM FOR CONTINUATION OF BROWSING SESSIONS BETWEEN DEVICES
Kind Code:
A1


Abstract:
A system and method are provided for continuing a browsing session initiated with a first client machine and a web site. The browsing session may be continued on a second client machine by tracking the navigation history associated with the browsing session of the first client machine. The navigation history comprises at least an address of a last viewed web page of the web site. Continuation of the browsing session is further facilitated by collecting at least one web cookie during the browsing session that is dependent upon the interaction between the first client machine and the web site. In this way, in order to allow switching between client machines to continue the browsing session, the navigation history and the at least one web cookie is provided from the second client machine to the web site to restore and resume the browsing session at the point that it was previously terminated.



Inventors:
Kim, Sang-heun (Mississauga, CA)
Stinson, Charles Laurence (Mississauga, CA)
Application Number:
12/119317
Publication Date:
11/20/2008
Filing Date:
05/12/2008
Primary Class:
Other Classes:
709/228
International Classes:
G06F15/173; G06F21/00
View Patent Images:
Related US Applications:
20080022355Detection of network environmentJanuary, 2008Khosravi et al.
20090320090DEPLOYING PRIVACY POLICY IN A NETWORK ENVIRONMENTDecember, 2009Hungerford et al.
20090007260Security Synchronization ServicesJanuary, 2009Winje et al.
20070056046Compliance processing of rights managed dataMarch, 2007Claudatos et al.
20090265231ONLINE DISCOUNT OPTIMIZER SERVICEOctober, 2009Evanitsky
20080307226Verifying authenticity of e-mail messagesDecember, 2008Chow et al.
20090288145INTERACTIVE CLIENT MANAGEMENT OF A WHITE LISTNovember, 2009Huber et al.
20070283444Apparatus And System For Preventing VirusDecember, 2007Jang
20050120238Virus protection method and computer-readable storage medium containing program performing the virus protection methodJune, 2005Choi
20060236367Method for providing wireless application privilege managementOctober, 2006Wallis et al.
20070094724It network security systemApril, 2007Naedele



Primary Examiner:
HUSSAIN, FARRUKH
Attorney, Agent or Firm:
GOWLING WLG (Canada) LLP (TORONTO, ON, CA)
Claims:
1. A method of continuing a browsing session associated with a first client machine and a web site on a second client machine, the method comprising: tracking a navigation history associated with the browsing session, the navigation history comprising an address of a last viewed web page of the web site; collecting at least one web cookie during the browsing session, the at least one cookie dependent upon interaction between the first client machine and the web site; and providing the navigation history and the at least one web cookie for the second client machine to restore the browsing session.

2. The method of claim 1, further comprising: tracking formatting information of the web page as formatted by the first client machine and associated with the navigation history; and storing the formatting information for providing to the second client machine to restore the browsing session to provide the formatted web page.

3. The method of claim 1, wherein the navigation history further comprises web page addresses of each web page visited during the browsing session.

4. The method of claim 1, wherein the at least one web cookie comprises data selected from the group consisting of: a browsing session identification; a user identification associated with the browsing session; a first client machine identification; user preference information associated with the browsing session and the web site; and a user login information associated with the browsing session.

5. The method of claim 1, further comprising maintaining a relational database for data received from the web site during the browsing session, the data received from the web site comprising the at least one web cookie.

6. The method of claim 5, further comprising: providing a gateway between each of the first client machine, the second client machine and the web site; receiving requests on the gateway for restoring the browsing session from the second client machine; retrieving the at least one web cookie from the relational database and providing a transaction continuance package from the gateway to the second client machine, the transaction continuance package comprising the stored at least one web cookie and the navigation history for providing to the web site to restore the browsing session.

7. The method of claim 6, further comprising: tracking a state of a transaction initiated by the first client machine on the web site during the browsing session; and storing the state associated with the navigation history and the at least one web cookie for providing to the second client machine to facilitate continuing the browsing session to complete the transaction.

8. The method of claim 1, further comprising transmitting the at least one web cookie and the navigation history from the first client machine to the second client machine, such that the second client machine transmits the at least one web cookie to the web site associated with the navigation history to restore the browsing session on the second client machine.

9. The method of claim 8 wherein the web site comprises an e-commerce web site and wherein the web page is for conducting a transaction.

10. The method of claim 8 wherein one of the first client machine or the second client machine comprises a wireless mobile device.

11. A system for continuing a browsing session associated with a first client machine and a web site on a second client machine, the system comprising: at least one computing device comprising a processor and a memory coupled thereto, said memory storing instructions and data for configuring the processor to: track a navigation history associated with the browsing session, the navigation history comprising an address of a last viewed web page of the web site; collect at least one web cookie during the browsing session, the at least one web cookie dependent upon interaction between the first client machine and the web site; and provide the navigation history and the at least one web cookie for the second client machine to restore the browsing session.

12. The system of claim 11, wherein the processor is further configured to: track formatting information of the web page formatted by the first client machine and associated with the navigation history; and store the formatting information for providing to the second client machine to restore the browsing session to provide the formatted web page.

13. The system of claim 11, wherein the navigation history further comprises web page addresses of each web page visited during the browsing session.

14. The system of claim 11, wherein the at least one web cookie comprises data selected from the group consisting of: a browsing session identification; a user identification associated with the browsing session; a first client machine identification; user preference information associated with the browsing session and the web site; and a user login information associated with the browsing session.

15. The system of claim 11, further comprising a relational database maintained for storing the data received from the web site during the browsing session, the data received from the web site comprising the at least one web cookie.

16. The system of claim 15, further comprising a gateway between each of the first client machine, the second client machine and the web site; each of the gateway, the first client machine and the second client machine configured as one of the at least one computing devices, each of the first and the second client machines configured to request at least some of the web pages of the web site via the gateway; and the second client machine configured to communicate with the gateway for restoring the browsing session.

17. The system of claim 16, wherein upon receiving a request for restoring the session from the second client machine, the gateway is further configured to: retrieve the at least one web cookie from the relational database and provide a transaction continuance package to the second client machine, the transaction continuance package comprising the stored at least one web cookie and the navigation history for providing to the web site to restore the browsing session.

18. The system of claim 17, wherein the instructions and data of the gateway configure the processor of the gateway to: track a state of a transaction initiated by the first client machine on the web site during the browsing session; and store the state associated with the navigation history and the at least one web cookie for providing to the second client machine to facilitate continuing the browsing session to complete the transaction.

19. The system of claim 11, wherein each of the first and the second client machine are configured as one of the at least one computing devices, the instructions and the data of the first client machine configuring its processor to provide the at least one web cookie and the navigation history from the first client machine to the second client machine, such that the instructions and the data of the second client machine configure its processor to transmit the at least one web cookie to the web site associated with the navigation history to restore the browsing session on the second client machine.

20. The system of claim 19, wherein the computing device comprises a wireless mobile device.

21. The system of claim 19, wherein the web site is an e-commerce site and wherein the web page is for conducting a transaction.

22. A computer program product for continuing a browsing session associated with a first client machine and a web site on a second client machine, the computer program product for storing computer readable instructions which when executed by a computer processor configure the processor to: track a navigation history associated with the browsing session, the navigation history comprising an address of a last viewed web page of the web site; collect at least one web cookie during the browsing session, the at least one cookie dependent upon interaction between the first client machine and the web site; and provide the navigation history and the at least one web cookie for the second client machine to restore the browsing session.

23. A method of conducting an e-commerce transaction between a wireless mobile device and an e-commerce web site, said method comprising: tracking a navigation history associated with the e-commerce transaction, the navigation history comprising an address of a last viewed web page of the e-commerce web site; collecting at least one web cookie during the browsing session, the at least one web cookie dependent upon interaction between the wireless mobile device and the e-commerce web site to conduct the e-commerce transaction; and providing the navigation history and the at least one web cookie for a computing device to restore and complete the e-commerce transaction.

24. A system for continuing a browsing session associated with a first client machine and a web site on a second client machine, the system comprising: said first client machine configured to initiate the browsing session; a gateway coupled between the web site and each of the first and the second client machine, the gateway configured to: receive a request from the second client machine for continuing the browsing session; retrieve a navigation history associated with the browsing session of the first client machine, the navigation history comprising an address of a last viewed web page of the web site; retrieve at least one web cookie provided from the web site upon interaction between the first client machine and the web site; and provide the at least one web cookie and the navigation history to the web site in association with the second client machine for continuing the browsing session and restoring the last viewed web page.

25. A system for continuing a browsing session associated with a first client machine and a web site on a second client machine, the system comprising: said first client machine configured to initiate the browsing session; a gateway coupled between the web site and each of the first and the second client machine, the gateway configured to: receive a request from the second client machine for continuing the browsing session; retrieve a navigation history associated with the browsing session of the first client machine, the navigation history comprising an address of a last viewed web page of the web site; retrieve at least one web cookie provided from the web site upon interaction between the first client machine and the web site; and provide the at least one web cookie and the navigation history to the web site in association with the second client machine for continuing the browsing session and restoring the last viewed web page.

Description:

CROSS-REFERENCE

This application claims the benefit of the prior filing of U.S. Provisional Patent Application Ser. No. 60/924503 filed May 17, 2007, the disclosure of which is incorporated herein by reference.

COPYRIGHT

A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights.

FIELD

The present application relates generally to telecommunications and more particularly to a system and method for continuation of browsing sessions between devices.

BACKGROUND

Web sites host and provide information using web pages that are communicated electronically via a telecommunications network. Examples of such computing devices include portable computing devices that include wireless network browsing capability as well as telephony and personal information management capabilities. Often, users have several different computing devices (e.g. one or more portable computing devices and one or more desktop computers) to connect to and browse various web sites. For example, a user may have access to one type of computing device at home and another computing device at work.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic representation of a system for content navigation;

FIG. 2 is a schematic representation of a wireless communication device from FIG. 1; and

FIG. 3 illustrates an exemplary flow of interactions among components of the system of FIG. 1 for implementing continuance of sessions between client machines.

DETAILED DESCRIPTION OF THE EMBODIMENTS

In one aspect, it may be desirable to allow a user to switch between computing devices and continue a browsing session started on another computing device. Accordingly there are provided a method and system for facilitating switching between computing devices such as to resume the browsing session. Accordingly, the system and method allow continuing a browsing session initiated with a first client machine and a web site. The browsing session may be continued on a second client machine by tracking the navigation history associated with the browsing session of the first client machine. The navigation history comprises at least an address of a last viewed web page of the web site. Continuation of the browsing session is further facilitated by collecting at least one web cookie during the browsing session that is dependent upon the interaction between the first client machine and the web site. The collected at least one web cookie and the navigation history may be provided to the second client machine such as to allow the second client machine to continue the browsing session that was previously terminated.

Referring now to FIG. 1, there is illustrated a system 100 for content navigation via a telecommunications network. In a present embodiment, the system 100 comprises a plurality of client computing devices in the form of client machines 102A and 102B (collectively 102). System 100 further comprises a web server 106 hosting a web site (designated generally as 104) stored on web server 106. Devices 102 may be respectively coupled to communicate with a gateway 120 to obtain web pages (e.g. 110) from the web site 104. Alternatively, the gateway 120 may not be present in the system 100 and devices 102 may communicate directly with the web server 106 via a telecommunications network to request and obtain the selected web pages (e.g. 110).

In the present embodiment, the web site 104 may be stored on the web server 106 serving web pages (e.g. 110). For ease within the present embodiment, only a single web site 104 is shown; however, in another embodiment a plurality of different web sites may be so coupled. The gateway 120 may also be coupled to a database 126 for retrieving/storing data associated with the client machines 102 or web sites or both in accordance with the gateway's 120 operations. The database may be a relational database storing extracted data from web sites or navigation history 136 and cookies 134 associated with the client machines 102 or both. The stored data can be accessed by a Structured Query Language (SQL) to retrieve desired data.

Representative client machines 102 include any type of computing or electronic device that can be used to communicate and interact with content available via web sites. Each of the client machines 102 may be operated by a respective user U (not shown). Interaction with a particular user includes presenting information on a client machine (e.g. by displaying on a display screen) as well as receiving input at a client machine (e.g. such as via a keyboard for transmitting to a web site). In the present embodiment, client machine 102A comprises a mobile electronic device with the combined functionality of a personal digital assistant, cell phone, email paging device, and a web-browser. Such a mobile electronic device may comprise a keyboard (or other input device(s)), a display screen, a speaker, (and other output device(s) (e.g. LEDs)) and a chassis for housing such components. The chassis may further house one or more central processing units, volatile memory (e.g. random access memory), persistent memory (e.g. Flash read only memory) and network interfaces to allow client machine 102A to communicate over the telecommunication network. In the present embodiment of system 100 it is contemplated that client machine 102B may be another type of client machine such as a PC (e.g. desktop, server or laptop) configured to include a full desktop computer or as a “thin-client”. Typically such have larger display monitors/screens than portable machines like 102A.

Referring to FIG. 1, the system 100 facilitates switching between browsing sessions of two or more client machines (e.g. 102A/102B) by tracking and restoring one or more cookies (e.g. 134A, 134B) and the navigation history (e.g. 136A, 136B) associated with the client machine that initiated the browsing session.

Referring now to FIG. 2, a schematic block diagram shows an exemplary client machine 102 in greater detail. It should be emphasized that the structure in FIG. 2 is purely exemplary, and contemplates a device that may be used for both wireless voice (e.g. telephony) and wireless data (e.g. email, web browsing, text) communications. Client machine 102 includes a plurality of input devices which in a present embodiment includes a keyboard and, typically, additional input buttons, collectively 200, an optional pointing device 202 (e.g. a trackball or trackwheel) and a microphone 204. Other input devices, such as a touch screen, and camera lens are also contemplated. Input from keyboard/buttons 200, pointing device 202 and microphone 204 may be received at a processor 208. Processor 208 may be further operatively coupled with a non-volatile storage unit 212 (e.g. read only memory (“ROM”), Erasable Electronic Programmable Read Only Memory (“EEPROM”), or Flash Memory) and a volatile storage unit 216 (e.g. random access memory (“RAM”) speaker 220, display screen 224 and one or more lights (LEDs 222). Processor 208 may be operatively coupled for network communications via a subsystem 226. Wireless communications are effective via at least one radio (e.g. 228) such as for Wi-Fi or cellular wireless communications. Client machine 102 also may be configured for wired communications such as via a USB or other port and for short range wireless communications such as via a Bluetooth® radio (all not shown).

Programming instructions that implement the functional teachings of client machine 102 as described herein are typically maintained, persistently, in non-volatile storage unit 212 and used by processor 208 which makes appropriate utilization of volatile storage 216 during the execution of such programming instructions. Of particular note is that non-volatile storage unit 212 persistently maintains a web browser application 86 and, in the present embodiment, a state application 88, each of which can be executed on processor 208 making use of volatile storage 216 as appropriate. An operating system and various other applications (not shown) are maintained in non-volatile storage unit 212 according to the desired configuration and functioning of client machine 102, one specific non-limiting example of which is a contact manager application (also known as an address book, not shown) which stores a list of contacts, addresses and phone numbers of interest to user U and allows user U to view, update, and delete those contacts, as well as providing user U an option to initiate telecommunications (e.g. telephone, email, instant message (IM), short message service (SMS)) directly from that contact manager application.

Returning now to FIG. 1, the web server 106 and the gateway 120 (which can, if desired, be implemented on a single server) can be based on any commonly available server environments or platforms including a module that houses one or more central processing units, volatile memory (e.g. random access memory), persistent memory (ROM or long-term storage (e.g. hard disk devices)) and network interfaces to allow servers 106 and 120 to communicate over the telecommunications network. The web server 106 hosts software applications comprising instructions and data for generating and serving web pages dynamically. Load balancing, security/firewall, billing, account and other applications may also be present.

Gateway 120 hosts software applications comprising instructions and data for proxying requests and responses between the client machines 102 and web site 104. Gateway 120 may host software for maintaining HTTP communications, performing requests, maintaining sessions, handling cookies, etc. A caching or storing feature may also be provided for storing/retrieving data to/from database 126. Caching may comprise storing web pages from the web site as well as extracted data (e.g. cookies 134, navigation history 136) from which to build a relational database.

Devices 102 and web site 104 are coupled via a telecommunication network (not shown) typically comprising a plurality of interconnected networks that may include wired and (at least for device 102A) wireless networks. It should now be understood that the nature of the network is not particularly limited and is, in general, based on any combination of architectures that will support interactions between client machines 102 and servers 106 and 120. In a present embodiment the network includes the Internet as well as appropriate gateways and backhauls.

More specifically, in the present embodiment, a wireless network for client machine 102A may be based on core mobile network infrastructure (e.g. Global System for Mobile communications (“GSM”), Code Division Multiple Access (“CDMA”), Enhanced Data rates for GSM Evolution (“EDGE”), Evolution Data-Optimized (“EV-DO”), High Speed Downlink Packet Access (“HSPDA”), Universal Mobile Telecommunications System (“UMTS”), etc.) or on wireless local area network (“WLAN”) infrastructures such as the Institute for Electrical and Electronic Engineers (“IEEE”) 802.11 Standard (and its variants) or Bluetooth or the like or hybrids thereof. A wired network for system 100 and device 102B can be based on a T1, T3 or any other suitable wired connection.

As previously stated in relation to FIGS. 1 and 2, each of the client machines 102 is configured to interact with content available over the network, including web pages on web site 104. In a present embodiment, client machines 102A and 102B may navigate for content using a browser application (e.g. 86A and 86B). As will be explained further below, on client machine 102A, browser application 86A may be a mini-browser in the sense that it may be configured to render web pages on the relatively small display 224 of client machine 102A. Often, during such rendering, those pages are presented in a format that may be different from how those pages are rendered on a traditional desktop browser application (e.g. browser 86B of client machine 102B). Mini-browsers typically attempt to convey substantially the same information as if the web pages had been rendered on a full browser such as Internet Explorer®, Safari® or Firefox® on a traditional desktop or laptop computer like client machine 102B.

Referring again to FIG. 1, the system 100 facilitates switching between browsing sessions of two or more client machines (e.g. 102A, 102B). As mentioned earlier, client machines 102A and 102B may be referred to generally as client machines 102. That is, in one browsing session a user may start browsing web sites on any one of the client machines 102 (e.g. 102A) to reach a specific web page. At a later time, the user can continue the browsing session on a different client machine (e.g. 102B) such that its associated browser 86B presents the same web page as previously displayed on browser 86A. In one aspect, the web page resumed is restored at a same state that it was previously left at (e.g. if a user had customized information displayed on the web page previously). As described earlier, client machines 102, may refer to a desktop, a laptop, a mobile device or any other type of computing device, an example of which is illustrated in FIG. 2.

For example, a user of the client machine 102A may start browsing the web site 104, which may be an e-commerce web site for purchasing (e.g. products or services or both) to reach a desired web page for making a specific purchase from the web site. The desired web page, may be for example, a web page reached after several user interactions with the web site 104 to search for an item, add an item to a shopping cart but not complete the purchase of the item. As will be described, by allowing the user to continue the browsing session that was terminated, the user can complete the purchase on a different client machine 102B, as may be requested. This is beneficial as it maintains affiliate or referral tracking information that may be lost if continuance of sessions was not enabled. In addition, continuance of sessions can also give users seamless flexibility to use their desktop, or mobile, or laptop (client machines 102) to browse/buy items from a web site 104 and to replicate the browse/buy information on another client machine 102B, also referred to as a computing device herein.

Referring to FIG. 1, the system 100 provides a method for continuing a browsing session initiated by a first computing device (e.g. client machine 102A/102B) on a second computing device (e.g. a different one of the client machines 102A/102B). As illustrated in FIG. 1, each of the client machines 102A and 102B may respectively have associated web cookies 134A and 134B (referred to generally as 134); navigation history 136A, 136B (referred to generally as 136); formatting information 142A and 142B (referred to generally as 142); and browsers 86A and 86B (referred to generally as 86) which may be stored locally on storage 212A, 212B as applicable.

Accordingly, the one or more web cookies 134A/134B may be provided from the web sites visited by the browser 86A/86B of the client machine 102A/102B. The web cookies 134 generally reflect the web site state information relating to browser 86 interaction with a particular web site and customization of the web site by the user to obtain desired information from the web site. The navigation history 136 includes one or more addresses of web site(s) and web page(s) visited by the client machine 102 during a browsing session.

During interaction of the browser 86 on the client machine 102 with a web site 104, the browser 86 maintains the navigation history 136 of at least the address (e.g. URL) of the last viewed web page (e.g. 110) of the web site 104 during the browsing session. In one aspect, the navigation history 136 may further comprise the web address (e.g. URL) of a plurality of web pages visited during the browsing session of the first computing device. That is, in one embodiment, the navigation history 136 may comprise the web page the user is currently on and the plurality of web pages previously visited by the user (usually in the order visited) during the browsing session which may be reviewed using a back and a forward feature of the browser; and clicking on any links on web pages to advance to a new web page). The address of the current web page may be captured through a bookmark as may be requested by a user or by the browser 86 automatically maintaining a history of web sites visited. As will be understood by a person skilled in the art, the navigation history 136 may be stored on either the non-volatile storage or volatile storage as may be pre-defined for allowing subsequent access.

In one embodiment, browser 86 is further configured to receive, store and return (to the appropriate web site, as applicable) one or more web cookies 134 from the web site(s) visited during the browsing session. The web cookies 134 define the web site state information which may comprise: a user's login ID/session ID, web site preferences, and items displayed on a particular web page visited in the browsing session (e.g. shopping cart items). Other information that may be included in the cookies 134 comprises information relating to a user's customization of a web site for subsequent use by the user. For example, the user may select via the browser 86 a desired language option, desired country/location of origin, and desired sections of interest on a web site and other settings to obtain a customized web page associated with the web site. Web cookies 134A/134B received from web site 104 (e.g. via the web server 106) are particular to the user's interaction respectively on the browser 86A, 86B.

In addition, web cookies 134 may refer to a text file of information that a web site provides to the browser 86 for storing on the client machine while the user browses the web site. Accordingly, web cookies 134 provide session history information and are thus useful for maintaining a state of the web site with a particular user. Communication between the browser 86A/86B and the web server 106

In one embodiment, the browser 86 (e.g. 86A) interacts with a web site 104 via the web server 106. Accordingly, the web cookies 134A associated with the client's machine's 102A browsing session with the web site are received by and stored on the respective client machine 102A. For example, cookies 134A may be stored in a temporary file containing the browsing history information on client machine 102A. Communication between the browser 86A/86B and the web server 106 via the gateway

In another embodiment, illustrated in FIG. 1, browser 86A of client machine 102 (e.g. 102A) communicates with web server 106 via gateway 120. That is, client machine 102A sends a web page request to gateway 120. In response, web cookies 134A are received by and stored on database 126 of gateway 120. In general, database 126 may contain a relational table associating user/client machine 102A/102B identification with cookies 134A/134B received from a particular web site 104 during the browsing session of client machine 102A/102B. For example, database 126 can track and store transactions that have an unfinished/pending state as provided by the one or more cookies 134A/134B received from the web site (e.g. via web server 106).

Communication Between the Browser 86A/86B and the Web Server 106 and Retrieval Via the Gateway 120

In the present embodiment, the first client machine (e.g. 102A) may have started a transaction and browsed/interacted with a number of web pages to a certain stage for initiating product purchase, however the user may not have progressed to purchase completion. The communication between the client machine 102A and the web server 106 may have occurred independently of the gateway 120, however the gateway 120 may be used to facilitate sharing of cookies 134 and navigation history 136 between the client machines 102. Accordingly, if the user of the second client machine 102B requests to continue the browsing session initiated by client machine 102A, this triggers the retrieval of the cookies 134A and the navigation history 136A onto the gateway 120 for providing to the client machine 102B.

Referring again to the incomplete transactions, it may be envisaged that the gateway 120 or the browser 86A (as applicable) may be configured to maintain information regarding transactions that are not completed during the web browsing session of the client machine 102A. As described earlier, such incomplete transactions may be linked to the client machine 102A/user login identification. Accordingly, when a web session is started by client machine 102A but the purchase not completed, browser 86B may request one or more of the incomplete transactions from gateway 120. Accordingly, navigation history 136A and web cookies 134A associated with the incomplete transactions of client machine 102A are provided to client machine 102B for subsequently restoring the transactions and completing the purchase when desired. As would be understood by a person skilled in the art, completion of the purchase transaction may include providing or confirm payment and shipping information for purchasing a selected product. For example, tracking of incomplete transactions may be accomplished by storing the information associated with the last web page visited by the client machine 102A (e.g. address of web site and any cookies 134A). Alternatively, by storing the navigation history 136A and associated cookies 134A, any incomplete transactions may be restored.

Accordingly, the web cookies 134A may be selected from the group consisting of: a browsing session identification; a user identification associated with the browsing session; a first client machine identification; user preference information associated with the browsing session and the web site; and a user login information associated with the browsing session.

In accordance with the embodiments described, saving and restoring a user's session may comprise saving and restoring navigation history 136A of a client machine 102A and in particular the last viewed web page; and collecting and restoring one or more web cookies 134A which relate to a user's transactions with the web site via the browser 86A.

Saving a Browsing Session Initiated by the Client Machine 102B

As described earlier, saving a current browsing session comprises saving navigation history 136B, which comprises at least the URL of the most currently visited web page. In one aspect, navigation history 136B further comprises gathering all the browsing history (e.g. addresses) associated with browser 86B during the browsing session to be saved. In addition, saving the browsing session further comprises saving the one or more web cookies 134B associated with the browsing session. The combination of web cookies 134B and navigation history 136B may be saved on storage associated with the client device 102B.

In one embodiment, a user of client machine 102B may request saving the desired browsing session to initiate the save. In another embodiment, browser 86B or the gateway 120 (if applicable) may be configured to automatically save one or more browsing sessions.

When browser 86B makes an HTTP request, the response to the request comes back as an HTTP header and HTTP content. One of the instructions in the HTTP header may be one or more “set cookie” commands. As will be understood by a person skilled in the art, the “set cookie” command may not always be present in response to the web page request. For example, in some cases, in order to restore the browsing session only an address of the web page (e.g. navigation history 136) may be used.

In the present embodiment, considering one or more cookies 134B are received, browser 86B maintains cookies 134B on client machine 102B. Accordingly, when browser 86B makes the web page request, browser 86B can pass all applicable cookies 134B back to the web site to maintain the same state. Because information in cookies 134B can be in plain text in a header, it can readily be extracted by a client application. Accordingly, in one embodiment, as illustrated in FIG. 1, the client machine 102A/102B further comprises a respective browser plug-in or state application 88A/88B (referred to generally as 88). In the present example, the browser plug-in or state application 88B may facilitate the transfer of cookies 134B and navigation history 136B to a different client machine (e.g. 102A).

For example, state application 88B may be configured to retrieve web cookies 134B and one or more addresses of web site(s) visited 136B from a “temporary internet folder” of associated client machine 102B. Accordingly, the state application 88B may facilitate a direct transfer of the cookies 134B and the navigation history 136B from client machine 102B to client machine 102A.

In one embodiment, gateway 120 exists and state application 88B may further be configured to transmit web cookies 134B and navigation history 136B to gateway 120 for storage on the database 126. Additionally, database 126 may store information to identify client machine 102B associated with web cookies 134B and navigation history 136B. In this way, as will be described, a different client machine (e.g. 102A) can access web cookies 134B and navigation history 136B for continuing the session of the first client machine 102B.

Alternatively, as described earlier, gateway 120 may intercept communications between client machine 102B and web server 106. Accordingly, gateway 120 may be configured to directly track or save cookies 134B and navigation history 136B as client machine 102B is interacting with a web site and one or more web pages. For example, if the user of a first client machine 102B wishes to save a particular transaction in progress, the user can submit a request via browser 86B or state application 88B to notify gateway 120. Accordingly, gateway 120 may save navigation history 136B and the cookies 134B associated with the transaction in database 126 for later use in reactivating the particular transaction in progress. Although it has been described herein that another client machine (e.g. 102A) may continue a pending transaction, the same client machine 102B that initiated the transaction may request from gateway 120 the information to continue the transaction as described herein.

In one aspect, state application 88B may track (maintain) formatting information 142B related to web pages visited. In one example, the simplified formatting of the web pages displayed on the mobile display (e.g. on the client machine 102A) are maintained when continuing the transaction on a desktop (e.g. client machine 102B), even though there is sufficient desktop screen space available to display the original content and format of the web pages. Formatting information 142B may relate to user agent information that is supplied in headers of HTTP requests to a web site to obtain particular web page code formatted for the specific user agent.

Similarly, for transactions or browsing sessions that are initiated on the desktop (e.g. client machine 102B), the continuance of the web pages on the mobile device (e.g. client machine 102A), with respect to desktop formatted web pages could be retained. This may be done through re-organization of the pages and wrap content around the screen, or use of the WAP standard to spatially divide a page into a number of pages such as to allow the user to navigate between each page section to view a page.

The maintaining of the look and feel of the particular web page may be desirable to avoid confusion between format changes of the web pages. In one example, the user may select a certain web page format 142B for display on the client machine 102B. The user may request to save web page format 142B which may then be stored locally on client machine 102B or on database 126 (if applicable). In one case, the user requests to save web page format 142B in anticipation of changing devices (e.g. from desktop client machine 102B to mobile client machine 102A). The web page format 142B may then reflect a simplified format or another customized format as selected by the user of the client machine 102B. In either case when the user requests to continue the browsing session initiated by another client machine 102A, state application 88A may retrieve the web page format of the other client machine 102B or request retrieval of the web page format 142B from gateway 120 (and the corresponding database 126) such as to continue and complete a transaction, as desired. As will be understood, although maintaining the look and feel of the web page may be desirable, certain browser elements or plug-ins may work on one browser type but not on another. For example, Flash® may work on browser 86B but not on browser 86A.

Restoring a User's Browsing Session as Initiated by the Client Machine 102B

Case 1: Restoring a Particular Browsing Session Stored on Database 126

Restoring a particular browsing session (e.g. the most recently viewed web page) comprises making a request by the user of the client machine (e.g. the same client machine 102B or a different client machine 102A) on its associated browser 86 for viewing the last viewed web page associated with the terminated browsing session. For example, the option of resuming a terminated browsing session of another client machine or the same client machine 102 may be presented to the user in the browser 86 as a special button or drop down menu command or as a web page from gateway 120. Other ways of presenting the option to resume on the display of the relevant client machine 102 may be envisaged by a person skilled in the art.

In the present example, it will be assumed that a different client machine 102A requests to restore and continue the browsing session of client machine 102B. Gateway 120 then sends to client machine 102A a transaction continuance package 138. Transaction continuance package 138 is associated with the particular transaction in progress that was saved in database 126 as described previously. Transaction continuance package 138 comprises navigation history 136B for use in populating the navigation history of client machine 102A. Additionally, transaction continuance package 138 comprises one or more saved cookies 134B for use in restoring the desired web site's state information. Cookies 134B are stored into the appropriate location on client machine 102A that browser 86 uses to create and manage its cookies (e.g. “temporary Internet folder”).

In one aspect, transaction continuation package 138 further comprises formatting information 142. As described earlier, formatting information 142 provides information relating to the formatting of web pages on client machine 102 that initiated the browsing session. In this way, state application 88 retrieves formatting information 142 such as to allow similar web page formatting 142 on client machine 102A.

Case 2: Restoring a Browsing Session Stored Locally on the Client Machine 102A

As described earlier, in one embodiment, gateway 120 may not be used to proxy web page requests or store or transfer transaction information, and communications may occur directly between the client machine 102A and web server 106. In the present embodiment, information relating to the transaction in progress (e.g. cookies 134A and one or more addresses of web sites visited 136A) is stored locally on client machine 102A. In this case, state application 88 may be configured to synchronize the information relating to the transaction in progress between client machine 102A and the client machine 102B (e.g. providing synchronization data 139 to client machine 102B). For example, desktop synchronization software for synchronizing data between desktop and mobile applications (e.g. BlackBerry™ Desktop Software for BlackBerry™ devices) may be configured to facilitate transfer of information between two client machines 102. In this way, user preferences for web sites as provided by cookies 134A (including login ID information and other customized web site settings) may be synchronized between different client machines 102.

Exemplary Operation for Continuance of Sessions

Referring to FIG. 3, shown are illustrative operations of system 100 for facilitating continuance of a session initiated by first client machine 102A on second client machine 102B. By way of example, a purchase transaction is enabled by continuing the session.

A request 302 is made by client machine 102A for accessing a web page of a particular web site to web server 106. As described earlier, the addresses of web pages requested by client machine 102A defines the navigation information 136A. In response, web server 106 provides 304 an HTTP response comprising HTTP content and HTTP headers including one or more cookies 134A defining web site state information related to the interaction of client machine 102A with the web site. While browsing, client machine 102A typically stores 306 its navigation history 136A and cookies 134A. In addition, formatting information 142A may be stored on client machine 102A for providing to client machine 102B. Before the purchase transaction is completed, the browsing session on client machine 102A is terminated. Cookies 134A, navigation history 136A and optionally, formatting 142A, may be provided (e.g. as synchronization data 139) to a different client machine 102B for continuing the browsing session. Transfer 308 of the cookies 134A and navigation history 136A may be performed via synchronization software or other methods for transferring data between two devices as will be known in the art.

The received cookies 134A, navigation history 136A and optional formatting 142A are stored 310 to client machine 102B. Client machine 102B requests 312 the web page associated with the session as received in the navigation information 136A from the web server 106. Client machine 102B also provides any cookies 134A associated with the terminated session in order to resume the web page at its last stage (e.g. prior to termination on client machine 102A). Optionally, to maintain formatting associated with client machine 102A, formatting information 142A may be used (e.g. providing a user agent in an HTTP header) for web site 104. An HTTP response containing the HTTP content associated with the requested web page is received 314 by the client machine 102B. Accordingly, the selected web page (e.g. the last web page viewed by client machine 102A) may be displayed on the client machine 102B and the browsing session may be resumed to complete the purchase transaction.