1. Field of the Invention
The invention relates to electronic bill presentation and payment (EBPP) systems and more particularly to EBPP systems that aggregate items of bill data for a user from a number of different kinds of sources. The invention further relates to techniques for obtaining data from Web pages.
2. Description of Related Art
Electronic Bill Presentation and Payment Systems
Electronic bill presentation and payment systems are systems that automate bill paying for users of networked computers. An example of such a system is the Paytrust EBPP system, operated under the trademark Paytrust.com™ by Paytru$t, Inc., 101 Grover's Mill Rd., Lawrenceville, N.J. 08648.
In the Paytrust EBPP system as it existed before the invention described in the present patent application was incorporated into it, a Paytrust customer directed his or her billers to send the customer's bills to Paytrust instead of to the customer. For most billers, this simply means mailing the bill to Paytrust instead of to the customer. When Paytrust receives a customer's bill in the mail, Paytrust scans the bill to obtain an image of the bill and applies optical character recognition (OCR) technology to the scanned bill to read an item of bill data from the image. An item of bill data will typically include the account number, the statement date, the bill amount, the payment due date, minimum amount due, and/or total amount due. The image and the item of bill data are then input to the Paytrust EBPP system, which adds the image and the item of bill data to a database of bills that is maintained by the Paytrust EBPP system. The bills in the database are locatable by the name of the customer who received the bill and the name of the biller who sent the bill. The database also includes information about the billers including the address to which payment is to be sent and information about the customers including the bank or other accounts from which the customer's bills are to be paid. Some billers are able to provide their bills to Paytrust electronically, either directly or via a biller service provider. The electronic bill includes an image of the bill and the item of bill data. With these bills, the steps of scanning the bill and using OCR to obtain the bill information are not necessary; instead the electronic bills are added directly to the database.
Paytrust customers interact with the Paytrust EBPP system by means of the World Wide Web. The system maintains a Web site to which the customer has secure access. Using the secure access, the customer can request that Paytrust display a Web page that contains a list of the bills presently owed by the customer. The customer can use a pointing device to see the image of a bill on the list and to select a bill from the list for payment. When a bill has been selected, Paytrust pays the biller from the bank account specified by the customer. Other features of the Paytrust EBPP system include notification of the customer by email of the arrival of a bill, notification by email that an unpaid bill has come due, tracking of bill payment history, customer-specified reports based on the bill history, and the SmartBalance™ bank account balance feature, which will be explained in detail below.
An assumption made in the original design of the Paytrust EBPP system was that many billers would change their billing procedures so that they could provide either electronic bills or paper bills. That has not happened as quickly as originally anticipated. On the other hand, many billers are now maintaining Web sites at which their customers can access their current statements. These Web sites provide the customer with “electronic bills”, albeit in the form of information contained in HTML pages rather than in the form used in the standard electronic bills for which the Paytrust system was originally designed. What was needed was a way of obtaining the HTML forms of the electronic bills from the billers' Web sites, extracting an image of the bill and the item of bill datafrom the HTML forms, and adding this information to the Paytrust system's bill databases.
“Scraping” Data from HTML Pages
The information which a user receives from a Web site is in the form of an HTML page. The user's Web browser interprets the HTML page to produce the display that appears on the user's display device. The HTML page is made up of a sequence of elements which may be nested. Each element has the form:
The tags determine how the browser displays the content of the element. The tags' meanings are defined in the HTML standard. As is apparent from the foregoing description of an HTML page, if one knows the location of an element in the HTML page, one can go to that location in the page and read the content of the element. What's more, a program can be written that will do the same thing. The technique of using a program to locate an element on an HTML page and read that element's content is termed screen scraping. Of course, the program that does the screen scraping is specific to the HTML page or pages from which the content is being read.
One example of the use of screen scraping is Paytrust's SmartBalance feature. The feature provides Paytrust customers with bank balances that take into account the bills that the customer has selected for payment. SmartBalance takes advantage of the fact that many financial institutions now have Web sites where their customers can securely access their account balances. The Paytrust interactive display that displays the lists of bills and payments includes a button that takes the customer to a page of banks. The page includes a list of banks for which Paytrust has developed scraping programs to read the banks' account balance Web pages. The SmartBalance feature only works with these banks. When the Paytrust customer enters his or her user identification and clicks on a login button, the Paytrust system acts as a proxy for the Paytrust customer: it employs the customer's user identification to access the customer's account balance information at the financial institution's Web site, scrapes the HTML page on which the balance information occurs, and returns the scraped data to the Paytrust System. The scraped data includes the time and date at which the account balance on the Web site was last updated and the balance. Using this information, the Paytrust system then computes a current balance (the SmartBalance) by subtracting from the account balance the amounts of bills paid using Paytrust since the last time the account balance was updated. Finally, the Paytrust system displays the SmartBalance to the customer.
Another use of screen scraping is aggregation of account balances for all of a user's accounts at a single site. Yodlee.com, Inc., of Sunnyvale, Calif. is a provider of one such services, called My Yodlee. Techniques used in the My Yodlee service are further the subject of U.S. Pat. No. 6,199,077B12, Inala, et al., Server-side Web summary generation and presentation, issued Mar. 6, 2001. My Yodlee aggregates account information from a large number of financial institutions. When a user wishes to use the My Yodlee service, he or she provides the service with account identification and user identification information for each of the accounts whose balances the user wants to appear on the Web page that My Yodlee provides to the user. The My Yodlee services includes a software agent, familiarly terms a bot, for each of the financial institutions from which My Yodlee aggregates account information. The bot does the scraping on the HTML provided by the financial institution's Web site.
A bot for a given financial institution is run periodically. On each run, the bot has the user identification information for all of the users for which My Yodlee is aggregating account information from that financial institution. The bot uses the user identification information to access the Web page for each user on the list, scrapes the account balance information from the Web page, and returns it to My Yodlee's Web site, which stores it in a database under the user's name. When the user wishes to see his or her account balances, My Yodlee creates a Web page for the user upon which the balances currently listed in the database for the user are displayed.
The techniques of screen scraping may be employed generally to make an HTML page a source of “electronic data”, Paytrust's SmartBalance technique shows how a system may use account and user identification information provided by a user to gain access to a Web page for purposes of screen scraping, and My Yodlee's software agents show how screen scraping may be done without direct user intervention. However, none of these techniques are applicable as they stand to the problem of integrating statement information that is available to a customer of an EBPP system at the biller's Web site with the statement information that is available to the EBPP system from sources such as mailed paper bills or bills provided directly to the EBPP system in electronic form. It is an object of the present invention to provide methods and apparatus for integrating statement information from biller Web sites with statement information available to the EBPP from other sources. It is a further object of the invention to provide a technique for obtaining information from a biller Web site that permits display of a bill by the EBPP system.
The object of the invention is achieved by providing an EBPP system in which a customer of the EBPP system inputs access information to the EBPP system which the customer uses to access the biller's Web site. The EBPP system then uses the access information to make scheduled accesses to the biller's Web site via the network and thereby provide a bill displayed on the Web site for the customer to the EBPP system, which incorporates information from the bill into the items of bill data that it maintains for the customer. The EBPP system treats item of bill data that is obtained from the Web site in exactly the same way as the items of bill data the EBPP system obtains in other ways.
Other aspects of the invention include scheduling the accesses according to the statement dates on the bills, checking validity of an item of bill data and incorporating the item only if it is valid, responding to an invalid item of bill data by modifying how items of bill data are read from the biller's Web site, and checking whether there is already an item of bill data in the EBPP system corresponding to the item of bill data obtained from the Web site, and in that case, not adding the obtained item of bill data to the EBPP system.
Another aspect of the invention is providing biller bill display data associated with the item of bill data in the biller's Web site to the EBPP system so that the EBPP system can display the biller bill display data. The EBPP system may modify the biller display data for display by the EBPP system. Modifications include adding information, replacing references in the biller display data to information in the biller Web site with references to information in the EBPP system, and removing interactive elements. These techniques are applicable not only in the context of EBPP systems, but generally to the problem of scraping information used to make a display from a Web site.
Other objects and advantages will be apparent to those skilled in the arts to which the invention pertains upon perusal of the following Detailed Description and drawing, wherein:
Reference numbers in the drawing have three or more digits: the two right-hand digits are reference numbers in the drawing indicated by the remaining digits. Thus, an item with the reference number 203 first appears as item 203 in
The following Detailed Description will first present an overview of the EBPP system in which the invention is embodied, will then present an overview of the user interface for the invention, and will finally present details of the implementation.
Overview of the EBPP System:
The major components of EBPP server 103 are EBPP service 123, bill information database 119, and bill image database 121. EBPPP service 123 is the software that interacts with the customers' browsers. Bill information database 119 is a database of information about customers 131, billers 105, the financial institutions 133 that the customers use to pay their bills, and about the bills themselves. The information about the bills includes for each customer, information about individual bills that have not yet been paid, information about bills that the system will automatically pay unless the customer indicates otherwise, and a history of the bills paid by the customer. Each item of per-customer bill information about an individual bill that has not yet been paid will be termed an item of bill data in the following discussion. As already pointed out, an item of bill data typically includes the biller's account number, the statement date, the bill amount, the payment due date, minimum amount due, and/or total amount due. Bill image database 121 contains information such as an image or the HTML for the bill. EBPP service 123 uses this information to provide an HTML page which displays the bill corresponding to an item of bill data to the customer's browser.
Bill info collector 115 obtains bill information from billers 105 and stores it in bill database 119 and/or bill image database 121. The bill information comes from billers in three forms: paper bills, shown coming from biller 105(a), electronic bills, shown coming from biller 105(b), who uses either the Biller Service Provider or Biller Direct approach to electronic billing, and bills scraped from the biller's statement Web site 129, shown coming from biller 105(c). With paper bills, the biller sends the paper bill by a paper bill delivery system 106 such as the Post Office to paper bill processing center 107, which is run as part of EBPP system 101. At paper bill processing center 107, each bill is scanned to produce a digital image and the digital image is read by OCR software to obtain the item of bill data corresponding to the bill. The bill data 113 and the image data 111 are then sent via network 109(a) to bill info collector 115, which provides the item of bill data and the image data to databases 119 and 121 respectively.
With billers such as biller 105(b) who use electronic billing, the billers are connected by network 109(b) directly to bill info collector 115 and provide the electronic bills to bill info collector 115, which in turn provides the items of bill data and images from the electronic bills to databases 119 and 121. With electronic billing, the electronic bills may also be contained in storage media such as tapes that the biller provides to be loaded into EBPP server 103. Bill info collector 115 processes the electronic bills on the media in the same fashion as it does electronic bills received via the network.
EBPP server 103 maintains a list of billers 105(c) for which EBPP server 103 can obtain items of bill data from the biller's Web site 129. These billers will be termed in the following scrape-enabled billers. For each such biller, EBPP server 103 is able to read the HTML provided by the biller's Web site 129 to obtain the item of bill data corresponding to the bill and to make a version of the HTML which EBPP server can use to display the bill on the customer's browser. The HTML required to display the bill and any images required for that HTML are stored in bill image database 121. If a customer 131 so specifies, EBPP server 103 may obtain the customer's bills from one or more of these Web sites 129. This is done as follows:
Account info proxy 124, finally, permits a customer of EBPP system 101 to obtain his or her account balance information for accounts maintained for the customer by bank 133 from the bank's account balance Web site 135 while remaining in EBPP system 101. EBPP system 101 then combines the account balance information with information in database 119 about payments the customer has made to compute a current bank balance 135.
It should be pointed out here that EBPP server 103 may be implemented using several different computer systems. In particular, EBPP service 123, proxy 124, and databases 119 and 121 may be implemented in a separate system from bill bot 117, scheduler 118, and bill info collector 115. Furthermore, a number of instances of bill bot program 117 may be executing simultaneously, either to fetch items of bill data from different Web sites 129 or from the same Web site 129.
Customer Interface to the EBPP System:
Bill inbox 205 contains entries 207 for all of the bills currently awaiting payment, regardless of whether the bill was received as a paper bill from the biller, was received in electronic form, or was scraped from the biller's statement Web site by bill bot 117. Each entry contains summary information for the bill that indicates the due date, the biller (payee), the total due, and the minimum payment. The summary information is made from the item of bill data for the bill. Totals at 208 indicate the total amount presently due and the total minimum amount due. There are three buttons to the right of the summary information; if the customer wishes the EBPP system to pay the bill, he or she clicks on the button with a $ sign; if the customer wishes to see an image of the bill, the customer clicks on the button with the magnifying glass; if the customer wishes to file the bill, the customer clicks on the third button. In each case, the result of clicking is a new HTML page for the desired operation.
Payment outbox contains entries 211 for all of the customer's bills for which the EBPP system has scheduled automatic payment but has not yet paid. Each entry specifies summary information for the payment including the date the payment is due, the name of the biller (payee), the check number or mode of payment if not by check, and the amount paid. With regard to the buttons to the right of the entry, the $ sign button lets the customer pay the bill immediately, the magnifying glass lets the customer see the bill's image, and the button with the hand lets the customer stop the scheduled payment.
When a biller is scrape enabled, a customer may edit the information which EBPP maintains about the customer's relationship to the biller to specify that the customer wishes EBPP system 101 to obtain his or her items of bill data from the biller by scraping the biller's statement Web site 129.
Details of Bill Information in EBPP System 101:
As shown in
Also corresponding to each customer entry 503 is a list 509 of that customer's billers. There is a biller entry 511 for each biller in list 509, and the entry for a given biller specifies the biller's name and address, the customer's account number with the biller, and any payment rules for paying bills from the biller for the customer. If the biller is scrape enabled and the customer has specified that EBPP system 101 is to use scraping to obtain the customer's items of bill data, the entry will also include the customer's access information for that biller's statement web site 129.
EBPP system 101 divides its billers into business payees and personal payees. Since a great many customers of EBPP system 101 may receive bills from the same business payee, EBPP system 101's bill information in database 119 includes a global biller list 523, which includes information for each biller on the list that is relevant to all of the bills for that biller. Included in the global biller entry 525 for a biller on list 523 are the biller's name and address, electronic funds transfer information, if relevant, and if the biller is scrape-enabled, the billing interval and the scraping strategy that bill bot 117 uses when scraping the biller's Web site 129. Scraping strategy will be explained in more detail below. Given a global biller entry 525, EBPP system 101 can also find per-biller image information 513 in bill image database 121. This information includes images and/or HTML and related data which system 101 uses to produce an image of the biller's statement.
Finally, there is a list of current bills 515 for each customer. Bill entry 517 contains biller information for the bill, the bill summary information, and status flags. Given bill entry 517, EBPP system 101 can also locate per-bill image information 521 and bill event list 519. For a personal payee, the per-bill image information is simply an image of the payee's invoice; for a scrape-enabled biller, it is a cleaned version of the HTML for the bill that bill bot 117 scraped from the biller's Web site 129. Events in bill event list 519 include when the bill was received, when the customer authorized payment of the bill, and when it was actually paid.
As may be seen from the foregoing discussion, given a customer entry, EBPP system 101 may find the customer's bill list; given a bill entry 517, system 101 may find the customer biller entry 511 for the biller, and given customer biller entry 511, system 101 may find the global biller entry for the biller. From the customer biller entry 511, system 101 can retrieve the information needed to access the customer's account with a scrape-enabled biller and from global biller entry 525, system 101 can retrieve the information needed to do the scraping and to display the bill's image.
Scheduling Information:
Scraping and Cleaning Items of Bill Data and Bill Image Information:
With regard to scraped bills, EBPP system 101 must be able to combine the biller's per-biller image info 513 and the customer's per-bill image info 521 to produce a display on the customer's browser in response to a click on the bill image button that looks like the bill the customer would see when he or she accessed biller statement web site 129, but which has been produced by EBPP system 101 instead of web site 129. Simply making a copy of the HTML that was scraped from statement web site 129 and providing the copy to the customer's browser is not sufficient because the HTML from web site 129 is intended to work in the environment provided by web site 129 and will not work in the different environment of EBPP system 101. Among the reasons why it will not work are the following:
In order to deal with these problems, EBPP system 101 modifies the scraped HTML it obtains from web site 129 to make cleaned HTML for display on the customer's browser.
The Displays:
The modification of the cleaned HTML to eliminate the active areas is necessary because the customer of system 101 is interacting with server 103, not with the server at Web site 129. Because the amounts and All-Electronic are not longer active, display 801, though produced using HTML, behaves in exactly the same fashion as a scanned image of a bill that the customer of system 101 otherwise sees when he or she clicks on the image button.
The HTML for the Displays:
The corresponding part of the cleaned HTML is shown at 907. As shown at 909, reference 903 to the stylesheet file has been replaced by reference 909 to a stylesheet file that is specific to the cleaned HTML. In a preferred embodiment, this stylesheet file is part of per-biller image info 513. The HTML for the Your Citibank Card Services Statement that appears in the display 801 made from HTML portion 907 appears at 911; there is nothing corresponding to this HTML in HTML portion 901. Finally, as shown at 913, there is nothing in cleaned HTML 907 corresponding to the image referenced at 905 in the scraped HTML.
Detailed Description of Operation:
Details of Getting Customer Access Information:
If the Web site does not respond, EBPP service 123 takes branch 1211, in which it provides a Web page informing the customer that the Web site did not respond, queues the access information for a later login attempt, and ends the processing of flowchart 1201. EBPP service 123 processes the later login attempt essentially as shown in
If the Web site did respond, EBPP service 123 takes branch 1213 and attempts to login using the customer's access information for Web site 129 (1219). If the login does not succeed, service 123 takes branch 1221, provides a Web page that indicates to the customer that the login failed and asks the customer to again enter the access information (1223), and returns via 1225 to block 1205. If the customer does not wish to try again, the customer can use a cancel button in the Web page to exit the processing of flowchart 1201.
If the login does succeed, service 123 takes branch 1222. It adds the customer access information to customer biller entry 511 for the customer who desires scraping and the biller to whom Web site 129 belongs (1227) and then outputs a login information verified page to the customer's browser, completing the processing of flowchart 1201.
Details of Scraping Bills:
On calling bill bot 117 to scrape bill data from a given Web site 129, scheduler 118 specifies the configuration of bill bot 117 required to do the scraping. Each web site 129 may of course have its own statement format and there must be a configuration of bill bot 117 for each of the different statement formats that bill bot 117 must deal with. Configured bill bot 117 then fetches a list of accounts for the biller Web site that is to be scraped. Information in the list includes the customer's account number with the biller and the customer's access information for Web site 129. At 1111, bill bot 117 gets the next account; as shown at 1113, if there is no next account, scraping of that biller Web site 129 is done (branch 1115). Otherwise, bill bot 117 gets the customer access information (1121) and logs in at the biller Web site for the customer (1123). If the login is not successful (branch 1127), bill bot 117 logs an invalid login exception to bill information database 119 (1131), emails a notification of the problem to the customer (1133), and returns via 1109 to block 1111.
If the login is successful, bill bot 117 reads the account number from the Web site and compares it with the account number from the customer's customer information 609 (1135). If they are different, bill bot 117 takes branch 1137, logs an account number match exception (1141), notifies the customer via email (1142), logs the customer out of biller Web site 129, and returns via 1109 to block 111. If the account numbers match, bill bot 117 takes branch 1139 and scrapes the HTML for the bill from Web site 129 (1145).
Bill bot 117 processes the scraped HTML as follows: first it extracts the summary bill data (1147). The summary bill data contains the information needed for the item of bill data being scraped. If the summary data cannot be extracted (1149), the biller has changed the format of the Web pages on site 129 and a new configuration must be made so that bill bot 117 can scrape the new format. In this case, bill bot 117 takes branch 1151, logs a Web site change exception (1155), logs the customer out of the biller Web site (1156), and goes via 1109 to block 1111. Bill bot 117 does this instead of going to end 117 after logging out the customer because a given change may affect only a relatively small number of customers on a given scrape of site 129. Provision is made in EBPP system 101 for ending the scrape if it is noticed that there has been a change in site 129 which affects a great many customers.
Next, bill bot 117 uses the summary data to check whether EBPP server 103 has already received a paper copy of the scraped bill (1157). It does this by using the summary data to make a query for the bill which it applies to bill info database 119. If the bill is already in the database, a paper copy has been received and bill bot 117 returns to block 1111 via branch 1159, block 1160, block 1162, and branch 1109. In block 1160, bill bot 117 updates the scrape date for the customer and biller in schedule entry 603 to specify the next time the biller should be scraped for the customer and places the new scrape date in customer biller entry 511 for the customer and biller. If no paper copy has been received (branch 1161), bill bot 117 cleans the scraped HTML to get rid of references in the HTML local to biller Web site 129 and to get rid of behavior which only works if the customer is interacting with the biller's Web site (1163).
Once bill bot 117 has cleaned the HTML, it logs the customer out from the biller's web site (1165) and stores the scraped bill information in the databases. The cleaned HTML goes into per-bill image info 521 in bill image database 121 (1167), while the bill summary information goes into a bill entry 517 in bill info database 119. Then bill bot 117 updates the scrape date for the customer (1171) Finally, bot 117 logs a bill received event in bill event list 519 for the customer and bill (1173), sends the customer email notifying him or her of the arrival of the new bill (1175), and returns via 1107 to box
Details Concerning Exceptions
As shown in
Details concerning these exceptions follow.
Invalid Login Exception
Invalid login exceptions occur when a customer enters customer access information that is not recognized by the biller's Web site. When this occurs, the customer is notified via email that the access information he or she provided was not recognized by the biller's Web site. The customer is asked to return to the Bill Center of
When a customer returns to the Bill Center and updates his or her access information, the customer's account is scheduled for scraping during the next scrape session. If the login is successful, then the customer's most recent statement is retrieved and processed as already described. If the login is still unsuccessful, another email notice is delivered to the customer and EBPP system 101 will wait until the customer has updated his or her login information before again attempting to access the biller's Web site for the customer.
Account Number Match Exception
In the event that EBPP system 101 is successful in obtaining a customer's statement from the biller's Web site, bill bot 117 compares the account number that is displayed on the bill with the account number that the customer provided to system 101. If the account numbers do not match, an email notification is delivered to the customer notifying the customer of this discrepancy. The notification also states that the customer will not be able to receive this particular bill online until he or she updates the account information. The customer will be able to issue payments to this biller through Bill Center 201, but will have to refer to the paper bill the customer receives at home for the due date, amount due, and other statement details.
When a customer returns to the Bill Center and updates his or her account information, the account is scheduled for bill bot 117's next scrape of the biller's Web site 129. If the account number on the bill matches the account number in database 119 on that scrape, then the bill is staged for posting via the normal cycle. If the account numbers still do not match, another email notice is delivered to the customer and system 101 will wait until the customer has updated the account information again before re-attempting to access the biller's Web site for the customer.
Web Site Change Exception
Bill bot 117 is designed to report any changes to the format of the HTML on the pages which it receives from Biller web site 135. Bill bot 117 looks for bill summary information in specific areas of the HTML of the bill. The bill summary information that bill bot 117 looks for in a preferred embodiment is: Statement Date, Payment Due Date, Minimum Amount Due, and/or Total Amount Due. If any of these elements is missing, or has been moved or altered in the HTML, bill bot 117 generates an exception report. The exception report is stored in DB 119 and is delivered to the team of software engineers responsible for maintaining bill bot 117. The team responds to the exception report by reviewing all of the bills for that particular biller in order to identify the changes that have taken place on the HTML of the bill. Any significant changes that are made to the biller's Web site require a change to bill bot 117. Once the changes have been put in place, bill bot 117 is rescheduled for that biller in order to retrieve the set of customer bills. The new bills are scrutinized for accuracy, and if they are accurate, are then posted to customers' accounts. The team can generally adapt bill bot 117 to a change to a biller's Web site within 24 hours.
Details of Bill Bot 117:
Bill bot 117 is a program that is written in the well-known Java™ programming language. The program is implemented using may Java libraries, including the following:
Billbot main program 1303 is invoked by scheduler 118 with a specification of a list of accounts and access information 613 for a given biller Web site 129(i) and a specification of the strategy that bill bot program 103 is to use to read the biller Web site 129(i). Main program 1303 gets the account list and selects the strategy required for the Web site where the accounts are located. The strategy is implemented as a Java class and main program 1303 uses methods belonging to the strategy's class to access the Web site and read the Web pages for each account.
In the preferred embodiment, the classes that define the strategies are subclasses of the class StatementSiteStrategy 1305, which is the superclass for the subclasses. The class-subclass relationship is shown by the fact that the boxes representing the subclasses 1307 are contained within the box representing their superclass 1305. All of the strategy classes make the same set of methods available to main program 1303, but a given method does what is required for the Web site 129 it is used with. Unless two biller Web sites 129 are identical with regard to how they are accessed and with regard to their Web pages, separate strategies are required for the Web sites. There will thus in most cases be a strategy subclass 1307(i) for each scrape-enabled biller's Web site 129(i). Moreover, if the biller changes the Web site with regard to how it is accessed or with regard to its Web pages, the strategy for the biller's Web site must be modified so that it works with the pages received from the modified Web site.
A single strategy subclass 1307(i) for the MBNA America Web site appears in more detail in
MBNA America strategy subclass 307(i) in turn uses a set of subclasses of the class StatementPageHandler that have been extended to deal with the pages which a user of Web site 129(i) will encounter when he or she logs in to view an account. In Web site 129(i), there are six Web pages that are of concern, and there is a subclass for each of the pages. Each of the subclasses has a constructor and two methods 1318: getSignature, which adds a character string to the scraped Web page which identifies it to other components of bill bot program 117 and of EBPP server 103, and evaluatePage, which retrieves information from the page. The signature and the information go into an object that is defined by the subclass. A user of Web site 129(i) may encounter a login page, whose corresponding subclass is subclass 1317, a page that permits the user to change his or her profile information, whose subclass is 1319, a home page for the user's account, whose subclass is 1321, a page which permits the user to select which statement he or she would like to view, whose subclass is 1323, a page which permits the user to see the detail for the selected statement, whose subclass is 1325, and a page that permits the user to select an account, whose subclass is 1325.
The foregoing Detailed Description has disclosed to those skilled in the relevant technologies the best mode known to the inventors of making and using the EBPP system of the invention and of employing the technique of scraping to extract display information. It will be immediately apparent to those skilled in the relevant technologies that the principles of the invention may be applied not only in the context of the Web, but in any context where a customer of the EBPP has access to other information via a network, and that the technique of scraping to extract display information may be used for any kind of display information, not just HTML pages. In particular, the technique may be applied to XML pages.
Additionally, the EBPP system of the invention may be implemented in many different ways. As already pointed out, the components of the system may be distributed across a number of systems. In some embodiments, the bill bot may retrieve only items of bill data; in others, it may retrieve only image data. The behavior of the bill bot will of course depend on what it is retrieving and on the characteristics of the Web site from which the bill bot is retrieving information. Moreover, while it is particularly advantageous to implement the bill bot using the Java language, the bill bot may be implemented in any programming language.
For all of the foregoing reasons, the Detailed Description is to be regarded as being in all respects exemplary and not restrictive, and the breadth of the invention disclosed herein is to be determined not from the Detailed Description, but rather from the claims as interpreted with the full breadth permitted by the patent laws.
Number | Name | Date | Kind |
---|---|---|---|
3833885 | Gentile et al. | May 1973 | A |
4277837 | Stuckert | Jul 1981 | A |
4315101 | Atalla | Feb 1982 | A |
4317957 | Sendrow | Mar 1982 | A |
4319336 | Anderson et al. | Mar 1982 | A |
4420751 | Paganini et al. | Dec 1983 | A |
4454414 | Benton | Jun 1984 | A |
4460960 | Anderson et al. | Jul 1984 | A |
4634845 | Hale et al. | Jan 1987 | A |
4678895 | Tateisi et al. | Jul 1987 | A |
4689478 | Hale et al. | Aug 1987 | A |
4695880 | Johnson et al. | Sep 1987 | A |
4727243 | Savar | Feb 1988 | A |
4734858 | Schlafly | Mar 1988 | A |
4799156 | Shavit et al. | Jan 1989 | A |
4823264 | Deming | Apr 1989 | A |
4947028 | Gorog | Aug 1990 | A |
5007084 | Materna et al. | Apr 1991 | A |
5025373 | Keyser, Jr. et al. | Jun 1991 | A |
5220501 | Lawlor et al. | Jun 1993 | A |
5231571 | D'Agostino | Jul 1993 | A |
5265033 | Vajk et al. | Nov 1993 | A |
5283829 | Anderson | Feb 1994 | A |
5287270 | Hardy et al. | Feb 1994 | A |
5325290 | Cauffman et al. | Jun 1994 | A |
5326959 | Perazza | Jul 1994 | A |
5336870 | Hughes et al. | Aug 1994 | A |
5341429 | Stringer et al. | Aug 1994 | A |
5347632 | Filepp et al. | Sep 1994 | A |
5383113 | Kight et al. | Jan 1995 | A |
5420405 | Chasek | May 1995 | A |
5424938 | Wagner et al. | Jun 1995 | A |
5465206 | Hilt et al. | Nov 1995 | A |
5473143 | Vak et al. | Dec 1995 | A |
5483445 | Pickering | Jan 1996 | A |
5594910 | Filepp et al. | Jan 1997 | A |
5649117 | Landry | Jul 1997 | A |
5655089 | Bucci | Aug 1997 | A |
5699528 | Hogan | Dec 1997 | A |
5710887 | Chelliah et al. | Jan 1998 | A |
5710889 | Clark et al. | Jan 1998 | A |
5717868 | James | Feb 1998 | A |
5727129 | Barrett et al. | Mar 1998 | A |
5727249 | Pollin | Mar 1998 | A |
5729693 | Holda-Fleck | Mar 1998 | A |
5745886 | Rosen | Apr 1998 | A |
5754939 | Herz et al. | May 1998 | A |
5787403 | Randle | Jul 1998 | A |
5815665 | Teper et al. | Sep 1998 | A |
5826242 | Montulli | Oct 1998 | A |
5832460 | Bednar et al. | Nov 1998 | A |
5845267 | Ronen | Dec 1998 | A |
5848396 | Gerace | Dec 1998 | A |
5848400 | Chang | Dec 1998 | A |
5857190 | Brown | Jan 1999 | A |
5870559 | Leshem et al. | Feb 1999 | A |
5870724 | Lawlor et al. | Feb 1999 | A |
5873072 | Kight et al. | Feb 1999 | A |
5884288 | Chang et al. | Mar 1999 | A |
5884290 | Smorodinsky et al. | Mar 1999 | A |
5884312 | Dustan et al. | Mar 1999 | A |
5890140 | Clark et al. | Mar 1999 | A |
5903721 | Sixtus | May 1999 | A |
5903732 | Reed et al. | May 1999 | A |
5905976 | Mjolsnes et al. | May 1999 | A |
5920847 | Kolling et al. | Jul 1999 | A |
5930759 | Moore et al. | Jul 1999 | A |
5943656 | Crooks et al. | Aug 1999 | A |
5956693 | Geerlings | Sep 1999 | A |
5956695 | Carrithers et al. | Sep 1999 | A |
5956700 | Landry | Sep 1999 | A |
5963925 | Kolling et al. | Oct 1999 | A |
5974146 | Randle et al. | Oct 1999 | A |
5978780 | Watson | Nov 1999 | A |
5987440 | O'Neil et al. | Nov 1999 | A |
6000033 | Kelley et al. | Dec 1999 | A |
6006333 | Nielsen | Dec 1999 | A |
6029151 | Nikander | Feb 2000 | A |
6032133 | Hilt et al. | Feb 2000 | A |
6038597 | Van Wyngarden | Mar 2000 | A |
6044362 | Neely | Mar 2000 | A |
6049786 | Smorodinsky | Apr 2000 | A |
6052457 | Abdelaal et al. | Apr 2000 | A |
6052671 | Crooks et al. | Apr 2000 | A |
6052730 | Felciano et al. | Apr 2000 | A |
6055567 | Ganesan et al. | Apr 2000 | A |
6058380 | Anderson et al. | May 2000 | A |
6065012 | Balsara et al. | May 2000 | A |
6070150 | Remington et al. | May 2000 | A |
6072870 | Nguyen et al. | Jun 2000 | A |
6078907 | Lamm | Jun 2000 | A |
6085177 | Semple et al. | Jul 2000 | A |
6085191 | Fisher et al. | Jul 2000 | A |
6097834 | Krouse et al. | Aug 2000 | A |
6098053 | Slater | Aug 2000 | A |
6119106 | Mersky et al. | Sep 2000 | A |
6119107 | Polk | Sep 2000 | A |
6119109 | Muratani et al. | Sep 2000 | A |
6122625 | Rosen | Sep 2000 | A |
6128603 | Dent et al. | Oct 2000 | A |
6173272 | Thomas et al. | Jan 2001 | B1 |
6178511 | Cohen et al. | Jan 2001 | B1 |
6182052 | Fulton et al. | Jan 2001 | B1 |
6199077 | Inala et al. | Mar 2001 | B1 |
6253203 | O'Flaherty et al. | Jun 2001 | B1 |
6275824 | O'Flaherty et al. | Aug 2001 | B1 |
6289322 | Kitchen et al. | Sep 2001 | B1 |
6292789 | Schutzer | Sep 2001 | B1 |
6327577 | Garrison et al. | Dec 2001 | B1 |
6334116 | Ganesan et al. | Dec 2001 | B1 |
6363362 | Burfield et al. | Mar 2002 | B1 |
6381584 | Ogram | Apr 2002 | B1 |
6393407 | Middleton, III et al. | May 2002 | B1 |
6412073 | Rangan | Jun 2002 | B1 |
6446119 | Olah et al. | Sep 2002 | B1 |
6578015 | Haseltine et al. | Jun 2003 | B1 |
20010002535 | Liebig et al. | Jun 2001 | A1 |
20010037296 | Ganesan et al. | Nov 2001 | A1 |
20010044776 | Kight et al. | Nov 2001 | A1 |
20020010677 | Kitchen et al. | Jan 2002 | A1 |
20020013768 | Ganesan | Jan 2002 | A1 |
20020019809 | Kitchen et al. | Feb 2002 | A1 |
20020046165 | Kitchen et al. | Apr 2002 | A1 |
20020046166 | Kitchen et al. | Apr 2002 | A1 |
20020046167 | Kitchen et al. | Apr 2002 | A1 |
20020046168 | Kitchen et al. | Apr 2002 | A1 |
20020049672 | Kitchen et al. | Apr 2002 | A1 |
20020052840 | Kitchen et al. | May 2002 | A1 |
20020062282 | Kight et al. | May 2002 | A1 |
20020065773 | Kight et al. | May 2002 | A1 |
20020087427 | Ganesan et al. | Jul 2002 | A1 |
20020087461 | Ganesan et al. | Jul 2002 | A1 |
20020087465 | Ganesan et al. | Jul 2002 | A1 |
20020087468 | Ganesan et al. | Jul 2002 | A1 |
20020087469 | Ganesan et al. | Jul 2002 | A1 |
20020087471 | Ganesan et al. | Jul 2002 | A1 |
20020184144 | Byrd et al. | Dec 2002 | A1 |
20020194125 | Shimada | Dec 2002 | A1 |
Number | Date | Country |
---|---|---|
1020824 | Jul 2000 | EP |
1043668 | Nov 2000 | EP |
1049056 | Nov 2000 | EP |
1052603 | Nov 2000 | EP |
1083532 | Mar 2001 | EP |
1091330 | Apr 2001 | EP |
1111559 | Jun 2001 | EP |
1136922 | Sep 2001 | EP |
1136923 | Sep 2001 | EP |
1136924 | Sep 2001 | EP |
2294566 | May 1996 | GB |
WO 9918529 | Apr 1999 | WO |
WO9942944 | Aug 1999 | WO |
WO0048085 | Aug 2000 | WO |
WO0177938 | Oct 2001 | WO |
WO 0214985 | Feb 2002 | WO |