Using interactive scripts to facilitate web-based aggregation

Information

  • Patent Grant
  • 9563718
  • Patent Number
    9,563,718
  • Date Filed
    Friday, June 29, 2007
    17 years ago
  • Date Issued
    Tuesday, February 7, 2017
    7 years ago
Abstract
Some embodiments of the present invention provide a system that facilitates interactivity during automated web-site accesses. During operation, the system executes a script which automatically accesses one or more websites. While executing the script, the system retrieves user-specific data associated with a user. The system then uses the user-specific data to access a target website. While accessing the target website, the system receives an interactivity request which the system presents to the user. The system then receives a response to the interactivity request from the user, and forwards the response to the website.
Description
BACKGROUND
Related Art

The present invention generally relates to systems that automatically aggregate data from websites.


Financial institutions typically provide websites that enable their customers to access account information on-line. Moreover, most people have accounts at a number of different financial institutions. For example, a person might have: (1) bank accounts at a bank, (2) credit-card accounts with different credit-card issuers, and (3) investment accounts with different brokerage firms. This means that the person must visit a number of different websites belonging to different financial institutions to determine their financial position accurately, which is a cumbersome and time-consuming process.


In order to speed up this process, a number of “account aggregation” systems have been developed to compile information from different accounts automatically. To use this type of system, a user typically provides account-access information (such as usernames and passwords) for various accounts, and the account-aggregation system uses this information to gather and compile the account information into a single presentation. These account-aggregation systems typically reside within a web-based application or within client-side software. Note that similar aggregation systems are also used to gather and compile other types of information, such as emails and news articles.


Unfortunately, existing aggregation systems navigate through websites in a programmed fashion that is “static.” This means that such systems require data to be already stored (e.g., a username) and also require a website map which is already known. Such systems have problems dealing with “dynamic” situations, where user interaction is required.


SUMMARY

Some embodiments of the present invention provide a system that facilitates interactivity during automated website accesses. During operation, the system executes a script which automatically accesses one or more websites. While executing the script, the system retrieves user-specific data associated with a user. The system then uses the user-specific data to access a target website. While accessing the target website, the system receives an interactivity request which the system presents to the user. The system then receives a response to the interactivity request from the user, and forwards the response to the website.


In some embodiments, accessing the target website involves performing navigation operations through web pages in the target website.


In some embodiments, accessing the target website involves performing parsing operations to extract data from web pages in the target website.


In some embodiments, accessing the target website involves aggregating account information for the user from the target website.


In some embodiments, receiving the interactivity request involves receiving an interactivity object which can encapsulate different data types associated with different types of interactivity requests.


In some embodiments, presenting the interactivity request to the user involves presenting the interactivity object to the user. In some embodiments, the interactivity object can include: an image to be viewed by the user; an audio file to be listened to by the user; a question in text form to be presented to the user; or HTML or XML code to generate a presentation for the user.


In some embodiments, prior to presenting the interactivity request to the user, the system suspends execution of the script. Then, after forwarding the response from the user to the website, the system resumes execution of the script.


In some embodiments, the user-specific data includes an identifier and a password for the user.





BRIEF DESCRIPTION OF THE FIGURES


FIG. 1 illustrates an aggregation system in accordance with an embodiment of the present invention.



FIG. 2 presents a flow chart illustrating the process of facilitating interactivity while navigating through a website in accordance with an embodiment of the present invention.





DETAILED DESCRIPTION

The following description is presented to enable any person skilled in the art to make and use the disclosed embodiments, and is provided in the context of a particular application and its requirements. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present description. Thus, the present description is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein.


The data structures and code described in this detailed description are typically stored on a computer-readable storage medium, which may be any device or medium that can store code and/or data for use by a computer system. This includes, but is not limited to, volatile memory, non-volatile memory, magnetic and optical storage devices such as disk drives, magnetic tape, CDs (compact discs), DVDs (digital versatile discs or digital video discs), or other media capable of storing computer-readable media now known or later developed.


Overview


One embodiment of the present invention provides a system that uses script technology to aggregate data from websites. While navigating through a given website, if the system detects an interactive portion of the website, the system provides an interface to a user to facilitate user interactivity with the website. The system also swaps out a process which is executing the script. Next, after obtaining information/input from the user and forwarding this information to the website, the system resumes executing the script. This system is described in more detail below.


Aggregation System



FIG. 1 illustrates an aggregation system in accordance with an embodiment of the present invention. This aggregation system is associated with an application 102, such as an accounting application, which is operated by a user 110. Application 102 can initiate execution of a script 104 by the aggregation system, for example by executing script 104 on a specialized script engine. Note that script 104 contains various macro-instructions which (when executed) access a target website 108.


In one embodiment of the present invention script 104 executes on a standalone application which includes a script engine. In an alternative embodiment, script 104 is executed by a script engine that is part of application 102. In yet another embodiment, the script executes within a web browser.


Script 104 includes uniform resource locators (URLs) that are directed to pages on websites, such as target website 108, as well as macro-instructions to that navigate through and parse pages on a target website 108. (Note that target website 108 can generally include any type of website from which data can be aggregated, such as a website for a financial institution.) For example, script 104 can first automatically navigate to a logon screen for a financial website. Next, the script can automatically enter a username and password into the logon screen to obtain access to an associated account-summary page. Script 104 can then determine how many accounts are associated with the account-summary page. For each of these accounts, the system can follow a corresponding URL to gather data from one or more pages associated with the account. During this process, if user interaction is required, the system allows the user to provide such input as is described below. For example, the interaction can involve the user reading an obscured word in a digital image and inputting the word as a response. In another example, the interaction can involve the user answering a question in text form, such as “what is your mother's maiden name?”


The aggregation system also includes a database (DB) 106 (or some other type of repository) which contains user-supplied information, such as passwords or credentials, that are used to gain access to various accounts on various websites.


Instead of interacting with user 110, the system can alternatively interact with a device or a computer system. For example, the system can interact with an optical character recognition (OCR) device 112, which, for example, can automatically read a word in a digital image. In general, the system can interact with any type of device or computer system that can perform some type of interaction, for example, such as input/output (I/O) system 114.


In yet another embodiment, instead of interacting with the user, the system can interact with a person who is “on-call” to respond to queries on behalf of users. For example, the person who is on-call might be employed by an organization (such as a call center) to answer such queries on behalf of users.


Facilitating Interactivity During the Navigation Process



FIG. 2 presents a flow chart illustrating the process of facilitating interactivity while navigating through a website in accordance with an embodiment of the present invention. At the start of this process, an external program (or a batch process) causes a script to be invoked (step 202).


Next, the script retrieves user-specific data for a website (such as a username and password) from a repository (such as database 106) (step 204). The script then uses this user-specific data to log on to the website.


Next, the script interacts with the website. This can involve performing “page parsing” operations on web pages to retrieve data from the website and to ascertain the structure of the website. It can also involve performing various navigation operations through various web pages on the website (step 206).


While accessing the website, the website can generate an interactivity request which can be in the form of an “interactivity object” (step 208). In one embodiment of the present invention, the interactivity object is an object defined within an object-oriented programming system. Note that this interactivity object can encapsulate different data types associated with different types of interactivity requests. For example, the interactivity object can include: an image to be viewed by the user; an audio file to be listened to by the user; a question in text form to be presented to the user; or HTML or XML code to generate a presentation to be presented to the user. Note that an HTML presentation can provide a drop-down menu with options that a user can select.


In response to receiving the interactivity object, the system presents the interactivity object to a user 110 of the application 102 which invoked the script. Note that this can involve presenting the interactivity object to user 110 through a user interface for application 102. For example, the user might be asked to recognize an obscured word in a digital image or to recognize some music in an audio file.


In one embodiment of the present invention, the script is then suspended (step 212) while the user takes time to respond. This enables other scripts to run on the script engine.


Next, the user provides a response (step 214), which for example may involve inputting a recognized word or a recognized piece of music, and the response is forwarded to the website (step 216).


In one embodiment of the present invention, the answer is stored by the system in database 106, so that when the same interactivity request is encountered, the system can automatically provide the response instead of asking the user to provide the response again. This feature prevents the user from having to respond to the same query again.


Also note that the response might include biometric data from the user, such as a fingerprint scan or a retina scan.


Finally, the script is re-started to continue processing from where it left off (step 218). Note that when the script is suspended a certain amount of state information must be saved for the script, and when the script is re-started the saved state information needs to be restored.


Macro Language Extensions


Note that a number of extensions can be made to the macro-language in which the scripts are written to facilitate the above-described process.

    • (1) The macro-language can be extended to obtain interactivity objects to facilitate user interaction.
    • (2) The macro language can be extended to provide support for suspending execution of a script while a user is responding.
    • (3) The macro language can be extended to send a query to a user or a third-party system.
    • (4) The macro language can be extended to receive a response to a query from a user or a third-party system.
    • (5) The macro language can also be extended to unsuspend or revive a script after a user has responded.


      Script API


In one embodiment of the present invention, the system supports invoking and communicating with scripts, such as script 104, through a specialized application programming interface (API), such as a web-services API. This allows the scripts to accept direct requests through the API.


The foregoing descriptions of embodiments have been presented for purposes of illustration and description only. They are not intended to be exhaustive or to limit the present description to the forms disclosed. Accordingly, many modifications and variations will be apparent to practitioners skilled in the art. Additionally, the above disclosure is not intended to limit the present description. The scope of the present description is defined by the appended claims.

Claims
  • 1. A method for facilitating interactivity during automated web-site accesses on behalf of a user, comprising: selecting, for execution at a computer, a first script from a set of scripts;executing, at a computer, the first script which accesses one or more websites, wherein executing the first script initially comprises: retrieving previously stored authentication credentials associated with the user;automatically navigating to a target website on behalf of the user;in response to receiving a request for authorization information from the target website, sending the retrieved authorization credentials to the target website;prior to the getting logged onto the target website on behalf of the user, receiving an interactivity request generated by the target website, wherein the interactivity request specifies information that requires a response from the user by using an object and requiring that the user interact with the object, and wherein the specified information requiring a response is in addition to the previously sent authorization credentials, wherein the response is based on the interaction with the object, and wherein the object includes at least one of an image to be viewed by the user, an audio file to be listened to by the user, a question in text form to be presented to the user, or HTML or XML code to generate a presentation for the user;presenting the interactivity request to the user; andsuspending execution of the first script to wait for the response from the user to the interactivity request;subsequent to suspending execution of the first script, and prior to receiving a response to the interactivity request from the user, selecting, for execution, a second script from the set of scripts, wherein the second script is not the first script;executing, at the computer, the selected second script;upon receiving a response to the interactivity request from the user, forwarding the response from the user to the target website;suspending the execution of the second script; andsubsequently resuming execution of the first script.
  • 2. The method of claim 1, wherein resuming execution of the first script involves: logging the user onto the target website;accessing the target website; andperforming navigation operations through web pages in the target website.
  • 3. The method of claim 2, wherein accessing the target website involves performing parsing operations to extract data from web pages in the target website.
  • 4. The method of claim 2, wherein accessing the target website involves aggregating account information for the user from the target website.
  • 5. The method of claim 1, wherein the interactivity object encapsulates different data types associated with different types of interactivity requests.
  • 6. The method of claim 1, wherein the previously stored authentication credentials include an identifier and a password for the user.
  • 7. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for facilitating interactivity during automated web-site accesses on behalf of a user, comprising: selecting, for execution at a computer, a first script from a set of scripts;executing the first script which accesses one or more websites, wherein executing the first script initially comprises: retrieving previously stored authentication credentials associated with the user;automatically navigating to a target website on behalf of the user;in response to receiving a request for authorization information from the target website, sending the retrieved authorization credentials to the target website;prior to getting logged onto the target website on behalf of the user, receiving an interactivity request generated by the target website, wherein the interactivity request specifies information that requires a response from the user by using an object and requiring that the user interact with the object, and wherein the specified information requiring a response is in addition to the previously sent authorization credentials, wherein the response is based on the interaction with the object, and wherein the object includes at least one of an image to be viewed by the user, an audio file to be listened to by the user, a question in text form to be presented to the user, or HTML or XML code to generate a presentation for the user;presenting the interactivity request to the user; andsuspending execution of the first script to wait for the response from the user to the presented interactivity request;subsequent to suspending execution of the first script, and prior to receiving a response to the interactivity request from the user, selecting, for execution, a second script from the set of scripts, wherein the second script is not the first script;executing, at the computer, the selected second script;upon receiving a response to the interactivity request from the user, forwarding the response from the user to the target website;suspending the execution of the second script; andsubsequently resuming execution of the first script.
  • 8. The non-transitory computer-readable storage medium of claim 7, wherein resuming execution of the first script involves: logging the user onto the target website;accessing the target website; andperforming navigation operations through web pages in the target website.
  • 9. The non-transitory computer-readable storage medium of claim 8, wherein accessing the target website involves performing parsing operations to extract data from web pages in the target website.
  • 10. The non-transitory computer-readable storage medium of claim 8, wherein accessing the target website involves aggregating account information for the user from the target website.
  • 11. The non-transitory computer-readable storage medium of claim 7, wherein the interactivity object encapsulates different data types associated with different types of interactivity requests.
  • 12. The non-transitory computer-readable storage medium of claim 7, wherein the previously stored authentication credentials include an identifier and a password for the user.
  • 13. An apparatus that facilitates interactivity during automated web-site accesses on behalf of a user, comprising: a memory;a processor;a selection engine configured to select, for execution at a computer, a first script from a set of scripts;an execution engine configured to execute the first script which accesses one or more websites, wherein executing the first script initially comprises: retrieving previously stored authentication credentials associated with a user;automatically navigating to a target website on behalf of the user;in response to a receiving a request for authorization information from the target website, sending the retrieved authorization credentials to the target website;prior to getting logged onto the target website on behalf of the user, receiving an interactivity request generated by the target website, wherein the interactivity request specifies information that requires a response from the user by using an object and requiring that the user interact with the object, and wherein the specified information requiring a response is in addition to the previously sent authorization credentials, wherein the response is based on the interaction with the object, and wherein the object includes at least one of an image to be viewed by the user, an audio file to be listened to by the user, a question in text form to be presented to the user, or HTML or XML code to generate a presentation for the user;presenting the interactivity request to the user; andsuspending execution of the first script to wait for the response from the user to the presented interactivity request;the selection engine further configured to, subsequent to suspending execution of the first script, and prior to receiving a response to the interactivity request from the user, select, for execution, a second script from the set of scripts, wherein the second script is not the first script;the execution engine further configured to execute, at the computer, the selected second script;the execution engine further configured to, upon receiving a response to the interactivity request from the user, forward the response from the user to the target website;suspend the execution of the second script; andsubsequently resume execution of the first script.
  • 14. The apparatus of claim 13, wherein resuming execution of the first script involves: logging the user onto the target website;accessing the target website; andperforming navigation operations through web pages in the target website.
  • 15. The apparatus of claim 14, wherein while accessing the target website, the script performs parsing operations to extract data from web pages in the target website.
  • 16. The apparatus of claim 14, wherein while accessing the target website, the script aggregates account information for the user from the target website.
  • 17. The apparatus of claim 13, wherein while receiving the interactivity request, the execution engine and the script are configured to receive an interactivity object which can encapsulate different data types associated with different types of interactivity requests.
  • 18. The apparatus of claim 13, wherein the previously stored authentication credentials include an identifier and a password for the user.
US Referenced Citations (101)
Number Name Date Kind
5544246 Mandelbaum et al. Aug 1996 A
5649118 Carlisle et al. Jul 1997 A
5671354 Ito et al. Sep 1997 A
5878398 Tokuda et al. Mar 1999 A
5881234 Schwob Mar 1999 A
5898835 Truong Apr 1999 A
6009429 Greer et al. Dec 1999 A
6038541 Tokuda et al. Mar 2000 A
6044142 Hammarstrom et al. Mar 2000 A
6385642 Chlan et al. May 2002 B1
6401073 Tokuda et al. Jun 2002 B1
6449636 Kredo et al. Sep 2002 B1
6460038 Khan et al. Oct 2002 B1
6832240 Dutta Dec 2004 B1
6871221 Styles Mar 2005 B1
6931419 Lindquist Aug 2005 B1
6966060 Young et al. Nov 2005 B1
6976210 Silva et al. Dec 2005 B1
6986062 Carpenter Jan 2006 B2
7051119 Shafron May 2006 B2
7076730 Baker Jul 2006 B1
7080037 Burger et al. Jul 2006 B2
7287031 Karpf et al. Oct 2007 B1
7302568 von Behren Nov 2007 B2
7340439 Burger et al. Mar 2008 B2
7421731 Mitchell et al. Sep 2008 B2
7529775 Bluvshteyn et al. May 2009 B2
7849137 Joshi Dec 2010 B2
7853534 Su Dec 2010 B2
7895275 Evans et al. Feb 2011 B1
7895284 Kim Feb 2011 B2
7954058 Kalaboukis et al. May 2011 B2
8060574 Evans et al. Nov 2011 B2
8060827 Fischer et al. Nov 2011 B2
8073733 Caland Dec 2011 B1
8091032 Fischer Jan 2012 B2
8176191 Fischer et al. May 2012 B2
8185584 Fischer et al. May 2012 B2
8190639 Cannon et al. May 2012 B2
8209631 Kraft et al. Jun 2012 B2
8219631 Kim Jul 2012 B2
8250485 Spisak Aug 2012 B2
8255828 Harris et al. Aug 2012 B2
8260882 Kim et al. Sep 2012 B2
8271495 Skrenta et al. Sep 2012 B1
8286089 Hardy et al. Oct 2012 B2
8291343 Kobayashi Oct 2012 B2
8312500 Emerson et al. Nov 2012 B2
8370486 Kim Feb 2013 B2
8374972 Caland Feb 2013 B2
8396924 Baldwin et al. Mar 2013 B2
8463893 Clark Jun 2013 B2
8468253 Guzman et al. Jun 2013 B2
8478783 Cannon et al. Jul 2013 B2
8533798 Schenk Sep 2013 B2
20010049635 Chung Dec 2001 A1
20020077957 Ottow et al. Jun 2002 A1
20020091788 Chlan et al. Jul 2002 A1
20020099665 Burger et al. Jul 2002 A1
20020174107 Poulin Nov 2002 A1
20020194226 Sheth et al. Dec 2002 A1
20030050967 Bentley Mar 2003 A1
20030220876 Burger et al. Nov 2003 A1
20040039824 Isoda Feb 2004 A1
20040083089 Wade Apr 2004 A1
20040107415 Melamed Jun 2004 A1
20040158722 Carpenter Aug 2004 A1
20040158746 Hu Aug 2004 A1
20050044044 Burger et al. Feb 2005 A1
20050050367 Burger et al. Mar 2005 A1
20050060586 Burger et al. Mar 2005 A1
20050108095 Perlmutter May 2005 A1
20050108096 Burger et al. May 2005 A1
20050160421 Bluvshteyn et al. Jul 2005 A1
20050165626 Karpf Jul 2005 A1
20050177753 Carpenter Aug 2005 A1
20060031387 Hamzeh et al. Feb 2006 A1
20060085766 Dominowska et al. Apr 2006 A1
20060116924 Angles et al. Jun 2006 A1
20060200425 Steele et al. Sep 2006 A1
20060242404 Su Oct 2006 A1
20070055884 Rhoads Mar 2007 A1
20070073704 Bowden et al. Mar 2007 A1
20070073843 Ferreri Mar 2007 A1
20070088608 Fogelson Apr 2007 A1
20070129955 Dalmia et al. Jun 2007 A1
20070136378 Karpf et al. Jun 2007 A1
20070169165 Crull et al. Jul 2007 A1
20070174298 Tanimoto Jul 2007 A1
20070180488 Walter et al. Aug 2007 A1
20070208641 Smith et al. Sep 2007 A1
20070220092 Heitzeberg et al. Sep 2007 A1
20070220275 Heitzeberg et al. Sep 2007 A1
20070251988 Ahsan et al. Nov 2007 A1
20070265922 Dumond et al. Nov 2007 A1
20070276732 Lee et al. Nov 2007 A1
20080060061 Deshpande Mar 2008 A1
20080114639 Meek et al. May 2008 A1
20080115208 Lee May 2008 A1
20090282467 Schenk Nov 2009 A1
20100169173 Vogels Jul 2010 A1
Foreign Referenced Citations (2)
Number Date Country
1118944 Jul 2001 EP
2812096 Jan 2002 FR
Related Publications (1)
Number Date Country
20090006985 A1 Jan 2009 US