Users interact with software applications to perform any number of tasks. Such an application may be provided as a service via the web. Examples include document automation services, photo printing services, ecommerce services, human resource services, and the like. A user's interaction with an application with respect to achieving a particular goal may be thought of as an application session. To complete a session, the user may navigate any number of pages of a given web site. Those pages may even span multiple web sites. Often a user may desire to suspend an application session. Significant time may pass before the user returns to the task. At such time the user would benefit from a reminder of where they last left off—that is—a reminder of the state of the remote application at the time the application session was suspended. Because a reminder is not readily available, the user logs back into the remote application supplying a user name and password and proceeds to navigate through the application to find where they previously left off.
Various embodiment described below operate to provide a user, upon suspension of an application session, with an electronic document containing data representative of the user's interaction with the application. The electronic document includes a link allowing the user to resume the application session at the point the application session was suspended—that is—the exit point. The electronic document can take one of many forms. One example includes an email message. Another includes a word processing document. Yet another includes a web page. This electronic document can be ported between multiple computers and multiple users. Thus, the user may end a session with a remote application, receive the electronic document, and later utilize or authorize another to utilize that document at any terminal with access to the remote application. Examining the electronic document and selecting the link, the user can resume the previously suspended application session with recollection of previous interactions.
Environment:
Components: The logical components of various embodiments of will now be described with reference to the exemplary block diagram of
Web server 22 represents generally any programming configured to serve web pages to clients 14. A user of a given client 14 may supply data or instructions through a served web page. Web server 22 is also responsible for passing such data or instructions on to their intended recipients. As discussed below, such a recipient may include application 24 and session manager 26.
Application 24 represents generally any programming for performing a specified task. In particular, application 24 is exposed to users of clients 14 via one or more web pages served by web server 22. The users submit information via those web pages to interact with and cause application 24 to perform desired tasks. As an example, application 24 may be one or more of an insurance underwriting application, an electronic commerce application, a photo printing application, and a document publishing application.
Session manager 26, discussed in more detail below, represents generally any programming capable of maintaining application state information corresponding to a user's interaction with application 22. Such application state information may, for a given user, identify the web pages accessed by that user and information supplied by the user via those web pages. Additionally, application state information may identify an exit point, that is, the particular web page being accessed by a user when that user chose to suspend interaction with application 22. In response to receiving an indication that a user has or will suspend interaction with application 22, session manager 26 is responsible for generating and providing a user with an electronic document for depicting the application state information and allowing that user to resume interaction with application 24 at the exit point. Database 28 represents generally a collection of data utilized by session manager 26 in performance of its tasks. In particular, session manager 26 utilizes database 28 to store application state information for each user. Session manager 26 also retrieves information from database 28 when generating an electronic document for depicting the state information and enabling the user to resume interaction with application 24 at an exit point. A more detailed discussion of session manager 26 and database 28 is provided below with respect to
To assist the user in resuming the session, session manager 26 monitors the application session recording data entered and section made through the various web pages of web site 30 in database 28. In this example, those web pages include web pages 30a, 30c, and 30f. When the user provides an indication that the application is to be suspended, session manager 26 generates a link for returning the user to the exit point of the application session. Session manager 26 generates an electronic document for depicting that link and state data indicative of the application session. That state data, for example, may be content reflecting the selections made and data entered during the application session. Session manager 26 then communicates the electronic document to the user. At a later point the user displays the electronic document and views the state data to recall the prior interaction with application 24. The user then selects the link causing application 24 to resume the application session at the exit point. In this example, application 24 returns web page 30f allowing the user to finish the application session.
Document engine 34 represents program instructions configured to assemble an electronic document for depicting state data indicative of a suspended application session and the link for resuming the application session at the exit point. For example, document engine 34 may generate the electronic document such that when displayed, the electronic document visually depicts the link and at least a portion of the user's interactions with the application during the session as represented by the state data recorded by session engine 32. While shown as a component of session manager 26, document engine 34 may instead be an independent component or a part of application 24. Such would allow session manager 26 to remain unaware of many details of the appearance of application 24 to the user. Thus, document engine 34 could continually or periodically update the electronic document as the user interacts with application 24. Once the session is suspended, document engine 34 would insert the link generated by session engine 32 and communicate the electronic document to the user.
Database 28, in this example, is shown to include a series of entries 36. Each entry 36 corresponds to a particular application session and includes data in fields 38, 40, 42, and 43. Session ID field 38 of each given entry represents a session identifier for a given application session. User ID field 40 of each given entry 36 contains data that can be used to confirm the user's identity such as a pre-shared password. State data field 42 of each given entry 36 contains state data recorded for a particular application session. Status field 43 of a given entry contains data such as a flag indicating whether or not the application session identified by the session identifier has expired. Such may have occurred if the user previously selected the corresponding link and continued working with the application.
Following communication of the electronic document to the user, session engine 32 is responsible for receiving a request resulting from a user's selection of the link. Upon selection, data contained in the link is communicated to session engine 32. Session engine 32 uses the session identifier from the link to access an entry 36 in database 28 containing matching data in session ID field 38. From that entry 36, session engine 32 accesses data from user ID field 40 to challenge and verify the identity of the user who selected the link. Once the user's identity is verified, session engine 32 examines status field 43 to determine whether the selected link has expired. If expired, session engine 32 may simply reject the request and redirect the user to an error page. Alternatively, session engine 32 may notify the user that the link has expired and query as to whether the user desires to continue anyway.
Assuming the link has not expired or the user has chosen to continue, session engine 32 accesses the previously recorded state data found in state data field 42 and causes application 24 to resume the application session at the exit point in accordance with the accessed state data. Session engine 32 then updates status field 43 of the accessed entry 36 to identify the link as expired, monitors the resumed application session, and records state data indicative of data entered and selections made during the resumed application session in a new entry 36 of database 28. Session engine 32 may also copy or otherwise record state data from the previously accessed entry 36 in the new entry 36. Alternatively, session engine 32 may include a reference to the previously accessed entry 36 in the new entry 36. In either case, if the session is once again suspended, a new link referencing the new entry can be accessed to resume the application session.
Operation:
In response to the recognition in step 44, an electronic document is assembled (step 46). The electronic document is for depicting state data indicative of the application session and a link for resuming the application session at the exit point. The electronic document is communicated to the user (step 48). Referring back to
Moving to
A determination is made as to whether a user has or intends to suspend the application session (step 54). Again, session engine 32 may be responsible for step 54. In particular, a web page supplied by application 24 may include a user accessible control for suspending an application session. Upon activation of that control, a suspend request is communicated and recognized by session engine 32. Upon recognition that the application session is to be suspended, the process continues with step 56. Otherwise, the process returns to step 50
Assuming the application session has been or is to be suspended, a link for resuming the application session is generated at an exit point (step 56). As explained above, that link can include data such as an URL (uniform resource locator) identifying the exit point. The link can also include data identifying the suspended application session. An electronic document is assembled (step 58). The electronic document is for depicting state data indicative of the application session and the link for resuming the application session at the exit point. The electronic document is communicated to the user (step 60). Referring back to
The process pauses until the link included in the electronic document is selected (step 62). State data associated with the link is accessed (step 64), and the previously suspended application session is resumed at the exit point in accordance with the accessed state data (step 66). Referring back to
Screen view 68 includes controls 80 and 82. Control 80 allows the user to move to the next screen view. Control 82 allows the user to suspend the application session. Here the user selected control 80 causing the display of screen view 70. Screen view 70 includes controls 84 and 86. Control 84 allows the user to move to the next screen view. Control 86 allows the user to suspend the application session. Here the user selected control 84 causing the display of screen view 72. Screen view 72 includes controls 88 and 90. Control 88 allows the user to move to the next screen view. Control 90 allows the user to suspend the application session. Here the user selected control 90 indicating a desire to suspend the application session.
Referring back to
The environment 10 shown in
Also, the present invention can be embodied in any computer-readable media for use by or in connection with an instruction execution system such as a computer/processor based system or an ASIC (Application Specific Integrated Circuit) or other system that can fetch or obtain the logic from computer-readable media and execute the instructions contained therein. “Computer-readable media” can be any media that can contain, store, or maintain programs and data for use by or in connection with the instruction execution system. Computer readable media can comprise any one of many physical media such as, for example, electronic, magnetic, optical, electromagnetic, or semiconductor media. More specific examples of suitable computer-readable media include, but are not limited to, a hard drive, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory, or a portable disc.
Although the flow diagrams of
The present invention has been shown and described with reference to the foregoing exemplary embodiments. It is to be understood, however, that other forms, details and embodiments may be made without departing from the spirit and scope of the invention that is defined in the following claims.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US2009/038230 | 3/25/2009 | WO | 00 | 8/11/2011 |