Abstract:
A script-based scenario designer application for automating the data transfer from one web interface to another. The script-based scenario designer receives sender and receiver web interface addresses from a user, displays the sender web interface to the user; monitors user interactions with the sender web interface, such as the entering of credentials; and receives from the user a data field mapping comprising a correlation of at least one sender web interface data field to at least one receiver web interface data field. The script-based scenario designer stores the sender web interface data field mapping and the user interactions as a scenario and allows the user to validate the scenario by retrieving a data field from the sender web interface, formatting the retrieved data field in accordance with instructions optionally stored in the scenario, and transmitting the formatted data field to the receiver web interface in accordance with the scenario.

Description:
This application claims priority from Provisional U.S. Patent Application Ser. No. 60/844,646, filed on Sep. 15, 2006, which is hereby incorporated by reference in its entirety. 
    
    
     This application includes material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent disclosure, as it appears in the Patent and Trademark Office files or records, but otherwise reserves all copyright rights whatsoever. 
     FIELD 
     The instant disclosure relates to the field of data transfer, and in particular to a system and method for automating the transfer of data from a web interface to another, wherein a user with minimal technical knowledge can implement the system and method. 
     BACKGROUND 
     Widespread adoption of the Internet by the public and the business world has lead to increasing amounts of data and information being available on-line. Several Internet-based methods for transmitting information exist, but the method is typically chosen by the sender without input from the receiver. While the Internet was in its infancy, e-mail was the most popular means for transmitting information, whereas today, web pages are increasingly more popular means for transmitting information. 
     Web page delivery has become popular with senders due to its cross-platform compatibility, convenience, flexibility, and ease of management. Receivers can navigate web pages using hyperlinks, buttons, arrows, or the like, which can lead to other web pages containing information or data. The framework in which the receiver navigates is ultimately decided by the sender. The sender can control the level of data available to the receiver, or re-direct the receiver to web pages containing extraneous images, advertisements, incomplete data, or the like. 
     SUMMARY 
     Accordingly, the instant disclosure is directed to a system and method for automating the transmission of data from one web interface to another that substantially obviates one or more of the problems due to limitations and disadvantages of the related art. In some embodiments, the instant system comprises two applications, a scenario designer application and a scenario executor. Using the scenario designer, a user can define one or more sender sites from which data is to be collected, including usernames, passwords, or other authentication information necessary to gain access to the sender site. The user also uses the scenario designer to map sender site data to a receiver web site, thereby facilitating the automated transfer of information from the sender to the receiver web site. The scenario designer saves the scenario for later execution by the scenario executor. In some embodiments, scenarios are saved in the Extensible Markup Language (“XML”). 
     Additional features and advantages of the invention will be set forth in the description which follows, and in part will be apparent from this disclosure, or may be learned by practice of the invention. The objectives and other advantages of the invention will be realized and attained by the structure particularly pointed out in this written description, including any claims contained herein and the appended drawings. 
     In some embodiments the disclosed system and method allow a user to easily streamline the collection of data from one or more sender websites and the transmission of such data to one or more receiver websites, without requiring any programming knowledge on the part of the user. Using the disclosed system and methods, the user can also easily re-map data fields in response to changes in the sender or receiver websites without necessitating hiring someone with programming knowledge, and the costs and expenses associated therewith. 
     Some embodiments may comprise computer program process code, tangibly stored on at least one computer readable medium, the computer program process code comprising instructions implementing a scenario designer, comprising instructions for causing the scenario designer to enter an initialization mode, the initialization mode comprising receiving from a user a sender web interface from which information is to be obtained; displaying to the user the sender web interface within a web interface display area; and, monitoring user interaction with the sender web interface to obtain any necessary credentials and storing the credentials; causing the scenario designer to enter run mode, the run mode comprising displaying a sender web interface to a user, displaying a receiver web interface to the user, and allowing the user to map data fields from the sender web interface to data inputs on the receiver web interface by selecting data fields on the sender web interface and data inputs on the receiver web interface; storing the data field mappings; and causing the scenario designer to connect to the sender web interface, retrieve at least one mapped data field from the sender web interface, and transmit retrieved data to the receiver web interface such that the transmitted information can be reviewed by the user; and associating the stored data field mappings and the stored credentials with a scenario. The computer program process code may further comprise instructions for periodically causing a server to execute the scenario. In some embodiments, a plurality of sender web interfaces can be received from a user as part of the initialization mode, and the run mode can be entered for each of the plurality of sender web sites. In some embodiments, the scenario may comprise a series of instructions, interpretable by a server, for automating the retrieval of data. In some embodiments, the run mode may further comprise receiving a user formatting selection from the user via the scenario designer application, the user formatting selection comprising at least one function to be applied to a mapped sender web interface data field. The user formatting selection is stored as part of the scenario. 
     Some embodiments may comprise a data transfer method, comprising displaying a scenario designer application to a user; receiving a sender web interface address from the user via the scenario designer application; receiving a receiver web interface address from the user via the scenario designer application; displaying, based on the received sender web interface address, the sender web interface to the user via the scenario designer application; receiving a sender web interface data field mapping from the user via the scenario designer application, the sender web interface data field mapping comprising a mapping of at least one sender web interface data field to at least one data field in the receiver web interface; defining and storing a scenario, the scenario comprising the sender web interface data field mapping; connecting to the sender web interface over a first communication network; retrieving a data field from the sender web interface; formatting the data field, according to the scenario, to create a formatted data field; connecting to the receiver web interface, via the server, over a second communication network; and, transmitting the formatted data field, from the server, to the receiver web interface, according to the scenario. Some embodiments may further comprise receiving login credentials from the user and storing the login credentials as part of the scenario. In some embodiments, a user formatting selection may be received from the user via the scenario designer application, the user formatting selection comprising at least one function to be applied to a mapped sender web interface data field. The user formatting selection can be stored as part of the scenario, and the scenario can be stored on a server. In some embodiments, the first and second communications networks comprise the same communication network, such as the Internet. The data field can be retrieved from the sender web site via a server, and the sender web interface data field mapping may further comprise a mapping between a sender web interface data field and at least one local data field. The sender web interface data field mapping may further comprise a mapping between the at least one local data field and at least one data field in the receiver web interface. 
     It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are intended to provide further explanation of the disclosed system and method for automating the transmission of data from a web interface to another. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The accompanying drawings, which are included to provide a further understanding of the disclosed system and method for automating the transmission of data from a web interface to another and are incorporated in and constitute a part of this specification, illustrate various embodiments and, together with the description, serve to explain the principles of at least one embodiment of the disclosed system and method for automating the transmission of data from a web interface to another. 
       In the drawings: 
         FIG. 1  is a block diagram illustrating a system architecture according to an embodiment. 
         FIG. 2  is an exemplary screen capture illustrating a scenario designer application according to an embodiment. 
         FIG. 3  is an exemplary screen capture illustrating a scenario designer application according to an embodiment. 
         FIG. 4  is an exemplary screen capture illustrating a scenario designer application according to an embodiment. 
         FIG. 5  is an exemplary screen capture illustrating a scenario designer application according to an embodiment. 
         FIG. 6  is an exemplary screen capture illustrating a scenario designer application according to an embodiment. 
         FIG. 7  is an exemplary screen capture illustrating a scenario designer application according to an embodiment. 
         FIG. 8  is an exemplary screen capture illustrating a scenario designer application according to an embodiment. 
         FIG. 9  is an exemplary screen capture illustrating a scenario designer application according to an embodiment. 
         FIG. 10  is an exemplary screen capture illustrating a scenario designer application according to an embodiment. 
         FIG. 11  is an exemplary screen capture illustrating a scenario designer application according to an embodiment. 
         FIG. 12  is an exemplary screen capture illustrating a scenario designer application according to an embodiment. 
         FIG. 13  is an exemplary screen capture illustrating a scenario being executed according to an embodiment. 
         FIG. 14  is an exemplary screen capture illustrating a scenario being executed according to an embodiment. 
         FIG. 15  is an exemplary screen capture illustrating a scenario being executed according to an embodiment. 
         FIG. 16  is an exemplary screen capture illustrating a scenario being executed according to an embodiment. 
         FIG. 17  is an exemplary screen capture illustrating a scenario being executed according to an embodiment. 
         FIG. 18  is an exemplary screen capture illustrating a scenario being executed according to an embodiment. 
     
    
    
     DETAILED DESCRIPTION 
     Reference will now be made in detail to embodiments of the disclosed system and method for automating the transfer of data from a web interface to another, examples of which are illustrated in the accompanying drawings. 
       FIG. 1  illustrates a system architecture  100  for automating the transfer of data from a web interface to another, in accordance with some embodiments. Data is housed on at least one sender web interface  110 . Sender web interface  110  is communicatively coupled with server  120  via a private or non-private network, such as, but not limited to the Internet. Server  120  can also be communicatively coupled with a receiver web interface  130  or a database  140 . A data transfer application, or scenario executor, running on server  120 , automates the transfer of data between sender web interface  110  and receiver web interface  130  and/or database  140  by performing one or more user-defined scripts. The data transfer application can comprise one or more forms, executable on a networked computing device, such as, but not limited to, compiled, stand-alone machine code, such as that written in Visual C++, Visual Basic, Delphi, or the like; run-time scripts, such as those written in JavaScript, Visual Basic Script, or the like; macros, command level files, or the like. 
     By way of example, without limitation, a user may want to store hourly weather readings for his locale in database  140 . Sender web interface  110  may comprise a weather website requiring the user to provide login credentials prior to providing weather readings. The data transfer application can automatically provide the login credentials to sender web interface  110  on an hourly basis, retrieve the weather readings, and store them in database  140 , without requiring any interaction by the user. 
     By way of another example, without limitation, a tax advisor may wish to automatically send state lottery winners promotional materials regarding services offered by the tax advisor. In this example, sender web interfaces  110  would comprise a state lottery website displaying the lottery winners&#39; names and hometown as well as a phone directory website, for locating the lottery winners&#39; home address. Receiver web interface  130  would comprise a printing website that the tax advisor uses to print promotional materials. The data transfer application can periodically query the state lottery website to retrieve the name(s) of new lottery winners. After receiving the name of a new lottery winner, the data transfer application would query the phone directory website to retrieve the lottery winner&#39;s home address. The data transfer application would then provide any necessary credentials, input the lottery winner&#39;s name and address into the printing website, and place an order to have promotional materials sent to the lottery winner. In both of the preceding examples, system architecture  100  and the scripts run by the data transfer application allow the user to transfer data between web interfaces and databases, while alleviating the burdens typically associated with doing so. 
     In some embodiments, four elements are used in facilitating the transfer of data from a web interface to another. Although emphasis is placed on a four element architecture, it should be apparent to one skilled in that art that the functions and features associated with the four disclosed elements can be combined, further delineated, or provided by an alternative architecture without departing from the spirit and scope of the disclosure. By way of example, without limitation, in some embodiments, server  120  can comprise database  140 . 
     As described above, the scenario executor, or data transfer application, executes scenarios designed by a user to facilitate the data transfer. Some embodiments, such as those illustrated in  FIGS. 2 through 12 , employ a scenario designer application which allows the user to quickly and efficiently create a data transfer script (referred to herein as a data transfer scenario), interpretable by the data transfer application, with little or no prior programming knowledge. The scenario designer application can display a scenario hierarchy  240  that represents the different steps to be taken by the data transfer application while executing the defined data transfer scenario. Scenario hierarchy  240  can comprise initialization mode node  250 , run mode node  260 , and end scenario node  270 . Although a hierarchy with three main nodes is illustrated and described herein, the hierarchy is intended to be exemplary. Alternative hierarchies, including, without limitation, a hierarchy comprising a single main node, may be substituted for the disclosed three-node hierarchy without departing from the spirit or the scope of the disclosed system and method. 
     Initialization mode defines the interactions necessary to gain access to the sender web interface from which information is to be retrieved. In some embodiments, the user can designate one or more sender web interfaces via home page node  252 , which can be implemented as a child node of login and initialization node  251 . Login and initialization node  251  may itself be implemented as a child node of initialization mode node  250 . 
     To help guide the user in defining a scenario, the instant system may display a series of dialog boxes, web-based forms, or the like, such as add sender web interface dialog  210  of  FIG. 2 . Add sender web interface dialog  210  contains a Universal Resource Locator (“URL”) field  220  and a website name field  230 . The user can enter a URL for a sender web interface into URL field  220  and a descriptive name into website name field  230 . Clicking the OK button adds the entered sender web interface to the scenario, retrieves the sender web interface that was entered in URL field  220 , and displays it in web interface display area  280 , as illustrated in  FIG. 3 . 
     In some embodiments, the scenario designer application allows the user to interact with the displayed sender web interface dialog  210  via web interface display area  280  and records user interaction therewith. By way of example, without limitation, the user may need to provide login credentials prior to sender web interface dialog  210  allowing access thereto, and the scenario designer can cause such credentials to be stored for later use. After providing the login credentials, sender web interface dialog  210  may require that the user may click on or otherwise interact with one or more hyperlinks, buttons, or the like before accessing the relevant data within the web interface. Each interaction within initialization mode node  250  can create another sub-step node  254  within home page node  250 . In some embodiments, the scenario designer application records each such interaction, thereby learning the interactions necessary to obtain the data desired by the user. At regular intervals, such as, without limitation, after fixed periods of time or after a number of interactions have been recorded, the scenario designer application can display a dialog, such as the dialog illustrated in  FIG. 4 , asking the user whether the scenario designer application should remain within initialization mode node  250  or move to run mode node  260 . 
     Once the initialization information has been entered, the scenario designer can enter run mode  260 . Run mode  260  allows the user to define the information to be obtained, including configuring the mapping of information from one or more fields in sender web interface dialog  210  to corresponding fields within a user database or a recipient interface. Run mode  260  can also be used to define iterative and/or repetitive steps taken to obtain the actual information of interest to the user. Run mode  260  also allows the user to map data obtained from one or more fields in the sender web interface In some embodiments, as illustrated in  FIG. 5 , run mode node  260  can comprise loop processing action node  261  and job detail action node  262 . Loop processing of data presented on a web interface can be advantageous for data delineated in a regular pattern, such as the chart illustrated in web interface display  280  of  FIG. 5 . 
     In some embodiments, as illustrated in  FIG. 6 , the scenario designer application can further provide a grid retrieval dialog  600  for processing web interface data contained in tables, grids, or other similar formats. In some embodiments, grid retrieval dialog  600  can display the web interface data in a web interface display  610 . Grid type selector  620  allows the user to select a grid format, such as, but not limited to, simple grid, simple grid with multiple lines/job, multiple grids in the same table based on detail, multiple grids (multiple lines/job) in same table based on detail, or the like. 
     In some embodiments, when simple grid is selected in grid type selector  620 , grid retrieval dialog  600  can further comprise a header grid selection  630 , a first row grid selection  640 , and a detail link selection  650 . Header grid selection  630  allows the user to select which row of the grid contains header information. Grid retrieval dialog  600  can use the header information to label data extracted from the columns of the grid. First row grid selection  640  allows the user to select the first row of the grid that contains data. Detail link selection  650  allows the user to select which column of the grid contains a link leading to more details for a given row. 
     In some embodiments, as illustrated in  FIG. 7 , the scenario designer application can provide a field mapping dialog  700  to allow the user to map data fields from the sender web interface to user defined variables. Field mapping dialog  700  can comprise an export selection  710 , an export field selection  720 , a local field selection  730 , a mapping button  740 , and a mapping display  750 . Selecting one or more fields in export selection  710  adds the fields to export selection  720 . Clicking mapping button  740  causes a mapping to be created between the field displayed in export field selection  720  and the field displayed in local field selection  730 . Mappings are displayed to the user in mapping display  750 . 
     In some embodiments, as illustrated in  FIG. 8 , the scenario designer application can provide a data mapping dialog  800  to allow the user to map data values from the sender web interface to the remote web interface or user defined variables. By way of example, without limitation, the sender web interface might contain a data column containing values of either “T” or “F”. The user may desire to have these values mapped to “True” or “False”. Alternatively, the data on the sender web interface may be displayed in an inverse matter to the form in which the user wants to display the data, so the user could correct the data form by mapping “T” to “False” and “F” to “True”. 
     In some embodiments, data mapping dialog  800  can comprise a field selection  810 , a value input  820 , a remote value selection  830 , a local value selection  840 , a mapping button  850 , and a data mapping display  860 . Field selection  810  is populated with data fields from the sender web interface. Selecting an individual data field in field selection  810  populates remote value selection  830  with each value that is currently in the selected data field of the sender web interface. The user can select a local data value from local value selection  840  and map it to either one or more data values in remote value selection  840 , or a value manually entered into value input  820 , by clicking mapping button  850 . Data value mappings are displayed to the user in data mapping display  860 . 
     In some embodiments, as illustrated in  FIG. 9 , the scenario designer application can display the information contained in the detail link defined in detail link selection  650  of grid retrieval dialog  600 . In some embodiments, as illustrated in  FIG. 10 , the scenario designer application can provide a description limiting dialog  1000 . Description limiting dialog  1000  allows the user to limit the data extraction performed on the detail link data to only those detail links containing criteria defined by the user. By way of example, without limitation, the user in  FIG. 10  is limiting data extraction to those detail links in which “Freda, Francine” is the Assigned Staffing Specialist. 
     In some embodiments, as illustrated in  FIG. 11 , the scenario designer application can provide a value combination dialog  1100  to allow the user to combine multiple sender web interface data fields into a single local data field. Value combination dialog  1100  can comprise a remote field selection list  1110 , a remote field selection button  1120 , a selected remote field display  1130 , a local field selection  1140 , a mapping button  1150 , and a combination display  1160 . Remote field selection list  1110  is populated with all of the data fields from the sender web interface. The user can select one or more sender web interface data fields to combine in remote field selection list  1110  and add the fields to selected remote field display  1130  by clicking remote field selection button  1120 . Local field selection  1140  is populated with local data fields. The user can map the combine the data fields displayed in selected remote field display  1130  to the data field selected in local field selection  1140  by clicking mapping button  1150 , which causes the combination to be displayed in combination display  1160 . 
     In some embodiments, as illustrated in  FIG. 12 , the scenario designer application can provide a value decomposition dialog  1200 . Value decomposition dialog  1200  is similar in operation to value combination dialog  1100 , the difference being that value decomposition dialog  1200  allows the user to take a single data field from a sender web interface and parse it into multiple local data fields. For example, as illustrated in  FIG. 12 , the user can take a single data field in the sender data interface that contains an address and split the data field into multiple local data fields representing state, address, city and zip code. 
     As described above, the scenario designer stores the user-created scenario for later execution by a data transfer application.  FIGS. 13-18  illustrate the execution of a previously designed scenario by a data transfer application. In  FIG. 13 , the data transfer application is presented with a request for login credentials. The data transfer application provides the login credentials, which then allows the data transfer application to access the sender web interfaces illustrated in  FIGS. 14-15 . 
     In some embodiments, the data transfer application can perform loop processing of data stored on a sender web interface in a table, grid, or other similar format as illustrated in  FIG. 16 . In some embodiments, while performing loop processing, the data transfer application can display the details for each row as it is processed, as illustrated in  FIG. 17 . 
     In some embodiments, the data transfer application can display a receiver web interface to which data is sent, as illustrated in  FIG. 18 . The data transfer application can populate the receiver interface with a sample set of the data retrieved from the sender web interface, thereby allowing the user to verify that the data is being properly sent to the receiver web interface. This functionality also allows a user with no programming background to verify that the scenario is operating properly. In the event that the sender or receiver web interfaces have been modified, the user can use the scenario designer application to quickly modify the scenario to operate in accordance with the web interface changes. 
     In some embodiments, the scenario designer application can compile executable software which can be run by server  120  or other such device. In some embodiments, the data transfer application needs to be installed on server  120  for the user created scenario to be executed. As described above, in some embodiments, the scenario designer application can output routines and macros, and such macros and routines can be executed by a data transfer application. Such routines and macros may be stored, for example, on server  120 , receiver web interface  130  or database  140 . Appendices A through F provide exemplary macros, or scenarios, that can be run by a data transfer application. Appendix A is an XML-based scenario generated by the user when performing the steps described above in conjunction with  FIGS. 2-4 . Appendix B is exemplary XML generated by the user when performing the steps described above in conjunction with  FIGS. 5-8 . Appendix C is exemplary XML generated by the user when performing the steps described above in conjunction with  FIGS. 9-12 . Appendix F is an exemplary, complete XML scenario generated as the user performs the steps described above in conjunction with  FIGS. 2-12 . Appendix D comprises an exemplary, XML-based scenario which is executed by the data transfer application illustrated in  FIGS. 13-15 . Appendix E comprises an exemplary, XML-based scenario which is executed by the data transfer application illustrated in  FIGS. 16-18 . 
     While detailed and specific embodiments of the system and method for automating the transmission of data from a web interface to another have been described herein, it will be apparent to those skilled in the art that various changes and modifications can be made therein without departing from the spirit and scope of the system and method for automating the transmission of data from a web interface to another. Thus, it is intended that the present disclosure cover these modifications and variations provided they come within the scope of any appended claims and/or their equivalents.