WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Distributed-client change-detection tool with change-detection augmented by multiple clients    
United States Patent5978842   
Link to this pagehttp://www.wikipatents.com/5978842.html
Inventor(s)Noble; Alan C. (Santa Cruz, CA), Freivald; Matthew P. (Sunnyvale, CA)
AbstractA distributed-client change-detection tool detects changes in Internet web-page documents on the world-wide-web. To register a web page for change detection with a change-detection server, a user specifies the web page's URL. A client-side change-detection application is downloaded to the user's client from the change-detection server. The server assigns a date and time for the client to perform change detection. At the assigned time and date, the client fetches a new copy of the web page and compares it to an archived copy to detect changes. When the client detects a change, it sends a notification with the URL to the server. The server verifies that the change has not already been reported by another user's client and then notifies all users of the registered web page. As more users are registered for a web page, change detection is performed more frequently. The most popular pages with tens of thousands of registered users are checked every few minutes. Each user is notified within minutes of any changes in the registered web page, even though any one user only performs change-detection once a month. Checksums rather than entire web pages can be stored and compared to reduce storage requirements at the server. The change-detection server performs its own change-detection for less popular web pages. More popular web pages are checked more frequently using the additional client resources of the users.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5978842
Distributed-client change-detection tool with change-detection augmented
     by multiple clients - US Patent 5978842 Drawing
Distributed-client change-detection tool with change-detection augmented by multiple clients
Inventor     Noble; Alan C. (Santa Cruz, CA) , Freivald; Matthew P. (Sunnyvale, CA)
Owner/Assignee     NetMind Technologies, Inc. (Cambell, CA)
Patent assignment
All assignments
Publication Date     November 2, 1999
Application Number     08/896,966
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     July 18, 1997
US Classification     709/218 707/10 707/201 709/203 709/219 709/224 709/245 709/246 715/513
Int'l Classification    
Examiner     Matar; Ahmad F.
Assistant Examiner     Thomson; William D.
Attorney/Law Firm     Auvinen; Stuart T.
Address
Parent Case     BACKGROUND OF THE INVENTION--RELATED APPLICATION This application is a continuation-in-part of the application for "Change-Detection Tool Indicating Degree and Location of Change of Internet Documents by Comparison of CRC Signatures", U.S. Ser. No. 08/783,625, filed Jan. 14, 1997 now U.S. Pat. No. 5,898,836.
Priority Data    
USPTO Field of Search     709/203 709/218 709/219 709/224 709/245 709/246 707/10 707/513 707/201
Patent Tags     distributed-client change-detection tool change-detection augmented multiple clients
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5898836
Freivald et al.

Apr,1999

[0 after 0 votes]
5890164
Nielsen

Mar,1999

[0 after 0 votes]
5813007
Nielsen

Sep,1998

[0 after 0 votes]
5812776
Gifford

Sep,1998

[0 after 0 votes]
5802299
Logan et al.

Sep,1998

[0 after 0 votes]
5751956
Kirsch

May,1998

[0 after 0 votes]
5745900
Burrows

Apr,1998

[0 after 0 votes]
5630116
Takaya et al.

May,1997

[0 after 0 votes]
5592664
Starkey

Jan,1997

[0 after 0 votes]
5577251
Hamilton et al.

Nov,1996

[0 after 0 votes]
5559984
Nakano et al.

Sep,1996

[0 after 0 votes]
5526524
Madduri

Jun,1996

[0 after 0 votes]
5522070
Sumimoto

May,1996

[0 after 0 votes]
5517606
Matheny et al.

May,1996

[0 after 0 votes]
5499364
Klein et al.

Mar,1996

[0 after 0 votes]
5491820
Belove et al.

Feb,1996

[0 after 0 votes]
5479654
Squibb

Dec,1995

[0 after 0 votes]
5471629
Risch

Nov,1995

[0 after 0 votes]
5452459
Drury et al.

Sep,1995

[0 after 0 votes]
5453779
Dan et al.

Sep,1995

[0 after 0 votes]
5388255
Pytlik et al.

Feb,1995

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


We claim:

1. A change-detection server for coordinating detection of changes in web pages by a plurality of clients, the change-detection server comprising:

a network connection for transmitting and receiving packets from a plurality of remote clients and a remote web-page server;

a responder, coupled to the network connection, for communicating with the plurality of remote clients, the responder registering a web page for change detection by receiving from a remote client in the plurality of remote clients a uniform-resource-locator (URL) identifying the web page;

an application downloader, responsive to the responder, for downloading a change-detection application to the remote client when the web page is registered by the remote client, the change-detection application periodically re-fetching the web page from the remote web-page server by transmitting the URL from the remote client directly to the remote web-page server; a scheduler, responsive to the responder, for generating an assigned time for the remote client to re-fetch the web page, the assigned time downloaded to the remote client during registration;

a server database, coupled to the responder-scheduler, for receiving the URL from the responder-scheduler and for receiving the assigned time from the scheduler after the web page is registered by the remote client, the server database for storing a plurality of records each containing a URL and a plurality of assigned times;

a client keeper on the change-detection server, coupled to the server database and the network connection, for receiving change notices from the plurality of remote clients, a detection notice generated by the change-detection application on the remote client when the web page re-fetched from the web-page server does not match an archived web page; and

a notifier on the change-detection server, coupled to the client keeper and the server database, for generating change notices to all remote clients having registered the web page that generated the detection notice,

whereby all remote clients are notified of a change when change-detection applications in the plurality of remote clients detects a change, and whereby the change-detection server assigns times for change detection by the plurality of remote clients.

2. The change-detection server of claim 1 wherein the assigned time for change detection is different for each remote client, whereby change detection by the plurality of remote clients occurs at different assigned times.

3. The change-detection server of claim 2 wherein the assigned time includes a date and a time during the date, wherein remote clients perform change detection on different dates and times assigned by the change-detection server, wherein each remote client performs change detection less than once a day while change detection is performed at least once a day by at least one of the plurality of remote clients for any date.

4. The change-detection server of claim 1 wherein the server database does not store the web page, the server database storing a checksum of the web page, whereby storage requirements for the server database are reduced by archiving the checksum and not entire web pages.

5. The change-detection server of claim 1 further comprising:

a server-side minder, coupled to the server database and the network connection, for periodically re-fetching the web page from the remote web-page server by transmitting the URL from the server database to the network connection, the server-side minder receiving a fresh copy of the web page from the remote web-page server, the server-side minder generating the detection notice to the client keeper when the fresh copy of the web page does not match archived web page,

whereby both the change-detection server and the plurality of remote client perform change detection.

6. The change-detection server of claim 5 further comprising:

a verifier in the client keeper, for verifying that the detection notice is for a new change and not for a change that has already been reported by another remote client, the verifier discarding the detection notice and not generating the change notices when the verifier determines that the detection notice is not for a new change.

7. The change-detection server of claim 6 further comprising:

selection means, coupled to the responder, for receiving a selection from the remote client, the selection identifying a desired portion for change detection within the web page;

parsing means, coupled to the responder, for parsing the web page and generating markers identifying the location of the desired portion, the markers stored in the server database; and

partial compare means, coupled to the server-side minder, for detecting changes in the desired portion of the web page located by the markers;

wherein the notifier does not generate a change notification to the remote client unless a change is detected in the desired portion of the web page.

8. The change-detection server of claim 1 wherein the web page is a hyper-text markup-language (HTML) web page containing HTML tags, the HTML tags for indicating formatting, layout, and hyper-links specifying URLs of other servers.

9. The change-detection server of claim 8 wherein the change-detection application downloaded from the change-detection server to the remote client is a JAVA application program.

10. The change-detection server of claim 1 wherein the notifier further comprises:

mailer means, coupled to the network connection, for sending a change notification message to remote clients when the change is signaled,

wherein the responder receives an electronic-mail address from the remote client, the responder storing the electronic-mail address of the remote client in the server database, and the mailer means reading the electronic-mail address from the server database, the change notification message being sent to the remote client as an electronic-mail message addressed to the electronic-mail address,

whereby the remote client is notified of the change by electronic mail.

11. The change-detection server of claim 1 wherein the packets transmitted to the network connection are TCP/IP packets and wherein the remote client and the remote web-page server are on the Internet.

12. A computer-implemented method for change detection of a web page by distributed clients coordinated by a server that notifies users of change, the method comprising the steps of:

registering the web page by:

receiving an address of a remote client operated by a user and a locator for the web page;

fetching the web page from a remote server by transmitting the locator to a network server;

downloading a change-detection application from the server to the remote client;

transmitting an assigned time for the remote client to perform change detection of the web page using the change-detection application;

storing the web page, the locator, the assigned time, and the address of the user in a server database;

at the assigned time, the remote client checks to determine if a change has occurred by:

reading the locator from a client database in the change-detection application and transmitting the locator to remote server to fetch a recent copy of the web page;

comparing the recent copy of the web page to an archived copy of the web page in the client database;

generating a detection notice to the server when the recent copy differs substantially from the archived copy;

signaling that a change is detected to other users with addresses stored in the server database associated with the locator for the web page when the detection notice is received by the server,

whereby the remote clients perform change detection at times assigned by the server.

13. The computer-implemented method of claim 12 wherein the detection notice from the remote client to the server includes the locator for the web page.

14. The computer-implemented method of claim 12 wherein the step of signaling that a change is detected to other users comprises:

reading the address of other users from the server database and sending a message to the address of each user stating that a change has occurred,

whereby the user is notified by a message when the change is detected.

15. The computer-implemented method of claim 14 wherein the web page is a web page on the world-wide web and the locator is a uniform-resource locator (URLs).

16. The computer-implemented method of claim 12 wherein each remote client performs change detection less than once a day while the period of time between change detection by any remote client of other users is less than an hour, whereby change detection occurs frequently although each remote client performs change detection infrequently.

17. A computer-program product comprising:

a computer-usable medium having computer-readable program code means embodied therein for detecting changes in a web page, the computer-readable program code means in the computer-program product comprising:

network connection means for transmitting and receiving packets from a remote client and a remote web page server;

responder-scheduler means, coupled to the network connection means, for communicating with the remote client, the responder-scheduler means registering web pages for change detection by receiving from the remote client a uniform-resource-locator (URL) identifying the web page and an identifier for the remote client, the responder-scheduler means downloading a client-side change-detection application to the remote client;

server-database means, coupled to the responder-scheduler means, for receiving the URL from the responder-scheduler means when the web page is registered by the remote client, the server-database means for storing a plurality of records each containing a URL and the identifier for each remote client registered for the URL;

the client-side change-detection application comprises a periodic minder means for periodically re-fetching the web page from the remote web page server by transmitting the URL from the remote client to a network, the periodic minder means receiving a fresh copy of the web page from the remote web page server, the periodic minder means comparing the fresh copy to an archived web page stored on the remote client; the periodic minder means generating a detection notice when the fresh copy does not match the archived web page; and

a minders' keeper for receiving the detection notice from the remote client from the network connection means, the minders' keeper reading the server-database means for identifiers of remote clients and generating change notices to each remote client registered for the URL of the detection notice,

whereby each remote client performs change detection for the benefit of all remote clients registered for the URL in the server-database means.

18. The computer-program product of claim 17 wherein the server-database means does not store a copy of the web page, the server-database means storing a checksum of the web page, whereby storage requirements for the server-database means are reduced by archiving the checksum.

19. The computer-program product of claim 17 wherein the responder-scheduler means, the server-database means, and the minders' keeper reside on a server while the client-side change-detection application executes on each remote client.

20. The computer-program product of claim 19 wherein the computer-readable program code means further comprises:

assignment means, coupled to the responder-scheduler means on the server, for assigning a plurality of dates and times for change detection to each remote client for each URL, the assignment means assigning different dates and times to remote clients to increase frequency of change detection of the URL,

wherein the dates and times of change detection by the remote clients is assigned by the assignment means on the server.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION--FIELD OF THE INVENTION

This invention relates to software retrieval tools for networks, and more particularly for a distributed change-detection tool for the Internet using pooled client resources.

BACKGROUND OF THE INVENTION--DESCRIPTION OF THE RELATED ART

The world-wide-web (www) is the fastest-growing part of the global network known as the Internet. Documents on the web's servers are known as web pages. These web pages are frequently changed. Users often wish to know when changes are made to certain web pages.

Change-notification application software is available for personal computers (PC's). An example is the notify feature of Symantec's Internet Fast Find. This application software runs on the user's PC and periodically fetches a web page from the Internet and compares the newly fetched page to an archived copy of the page. If a mis-match occurs, the user is notified that a change was detected, by a pop-up message window and a highlighted bookmark.

FIG. 1 is a diagram of users each running change-notification software. User application software (apps) 5, 6, 7, 8 run separately on different PC's. Each user app periodically connects to Internet 10 and fetches a web-page document from document server 12. Each user app 5-8 separately compares its newly fetched web page to an archived copy. When a change is detected, the local PC's user is notified. None of the other users is notified.

Each user app 5-8 can set a convenient time to fetch and compare the web page document. Some of user app 5-8 may not have a direct Internet connection, but instead must occasionally dial-up an Internet Service Provider (ISP) to fetch the document. Each user app 5-8 performs change detection at different times. Often change-detection is done infrequently as the user may not dial-in to the ISP on a particular day, or the user may not wish to devote his PC's resources to frequent change detection. One user with a direct Internet connection and spare computing resources may detect the change quickly, while other users do not detect the change until they perform their own change detection, perhaps hours or days later. There is no sharing of information among user apps 5-8. Each is a stand-alone application.

Server-Based Change-Detection Tool of Parent Application

The parent application disclosed a server-based change-detection tool that allows many different user clients to register web pages with the server. These registered web pages are periodically fetched by the change-detection server and compared to a stored checksum for the registered page to determine if a change has occurred. When a change is detected by the server, the user is notified by e-mail. The change-detection server of the parent application allows user to select portions of a web-page document for change detection while other portions are ignored.

Such a server-based change-detection tool as described in detail in the parent application is indeed useful and has gained popularity with Internet users, as several hundred thousand web pages have been registered. For example, patent professionals can register the federal regulations and procedures (37 C.F.R. and the M.P.E.P) posted at the PTO's web site and are notified when any changes are made. The change-detection tool is currently free for public use at the www.netmind.com web site.

Current Server-Based Tool Not Easily Scalable

While such a change-detection tool is useful as is evident by its popularity, the increasing number of web pages registered increases the change-detection work required of the server. Network traffic into and out of the server increases as more pages need to be periodically checked. As more pages are registered, each page is checked for changes less frequently, resulting in a decreasing quality of service.

The server must be expanded as additional pages are registered to maintain detection frequency. This expansion is expensive and slow as additional servers must be purchased and installed. Predicting future user demand and the additional server capacity required is difficult. Additional network bandwidth to the Internet, such as T1 phone lines, must be ordered several weeks in advance. Thus scaling the server-based change-detection tool is expensive and slow.

What is desired is an automated change-detection tool that detects when changes occur to a registered document on the Internet. An easily or automatically scalable change-detection tool is desired. It is desired to automatically increase computing and network resources as additional pages are registered by additional clients. It is desired for the user's clients to supply these additional resources to reduce capital outlays for additional servers. It is also desired that the registered web pages be obtained from any arbitrary document anywhere on the Internet.

SUMMARY OF THE INVENTION

A change-detection server coordinates detection of changes in web pages by a plurality of clients. The change-detection server has a network connection for transmitting and receiving packets from a plurality of remote clients and from a remote web-page server.

A responder is coupled to the network connection. It communicates with the plurality of remote clients. The responder registers a web page for change detection by receiving from a remote client in the plurality of remote clients a uniform-resource-locator (URL) identifying the web page.

An application downloader downloads a change-detection application to the remote client when the web page is registered by the remote client. The change-detection application periodically re-fetches the web page from the remote web-page server by transmitting the URL from the remote client directly to the remote web-page server.

A scheduler generates an assigned time for the remote client to re-fetch the web page. The assigned time is downloaded to the remote client during registration.

A server database is coupled to the responder-scheduler. It receives the URL from the responder-scheduler and receives the assigned time from the scheduler after the web page is registered by the remote client. The server database stores a plurality of records each containing a URL and a plurality of assigned times.

A client keeper on the change-detection server is coupled to the server database and the network connection. It receives change notices from the plurality of remote clients. A detection notice is generated by the change-detection application on the remote client when the web page that was re-fetched from the web-page server does not match an archived web page.

A notifier on the change-detection server is coupled to the client keeper and the server database. It generates change notices to all remote clients that registered the web page that generated the detection notice.

Thus all remote clients are notified of a change when change-detection applications in the plurality of remote clients detects a change. The change-detection server assigns times for change detection by the plurality of remote clients.

In further aspects of the invention the assigned time for change detection is different for each remote client. Thus change detection by the plurality of remote clients occurs at different assigned times. Each remote client can perform change detection less than once a day while change detection is performed at least once a day by at least one of the plurality of remote clients for any date.

In still further aspects the server database does not store the web page. Instead, the server database stores a checksum of the web page. Thus storage requirements for the server database are reduced by archiving the checksum and not entire web pages.

In still further aspects a server-side minder is coupled to the server database and the network connection. It periodically re-fetches the web page from the remote web-page server by transmitting the URL from the server database to the network connection. The server-side minder receives a fresh copy of the web page from the remote web-page server. The server-side minder generates the detection notice to the client keeper when the fresh copy of the web page does not match archived web page. Thus both the change-detection server and the plurality of remote client perform change detection.

In other aspects a verifier in the client keeper verifies that the detection notice is for a new change and not for a change that has already been reported by another remote client. The verifier discards the detection notice and does not generate the change notices when the verifier determines that the detection notice is not for a new change.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of users each running change-notification software.

FIG. 2 is a diagram of a change detection tool on a server on the Internet.

FIG. 3 is a diagram of a distributed-client change-detection tool coordinated by a server.

FIG. 4 shows a user registering a web page document and downloading a client-side minder application for change detection.

FIG. 5 shows a client-side application performing change detection of a registered web page document scheduled by the change-detection server.

FIG. 6 shows a document-change notice being generated by the client and sent to the server.

FIG. 7 shows a document-change notice being generated by the server and sent to all the users.

FIG. 8 is a diagram of a client-side minder application for performing change detection at a client scheduled by a server.

FIG. 9 is a flowchart of client-detected-change verification and notification by the minders' keeper on the server.

FIG. 10 is a diagram of a change-detection record used by the minder application at the client.

FIG. 11 is a diagram of a database in the change-detection server for coordinating clients.

FIG. 12 is a diagram illustrating clients scheduled for change-detection by the change-detection server.

FIG. 13 is a calendar illustrating scheduling of client checking over a month.

DETAILED DESCRIPTION

The present invention relates to an improvement in change-detection client-server software. The following description is presented to enable one of ordinary skill in the art to make and use the invention as provided in the context of a particular application and its requirements. Various modifications to the preferred embodiment will be apparent to those with skill in the art, and the general principles defined herein may be applied to other embodiments. Therefore, the present invention is not intended to be limited to the particular embodiments shown and described, but is to be accorded the widest scope consistent with the principles and novel features herein disclosed.

Overview of Change-Detection Web Server

FIG. 2 is a diagram of a change detection tool on a server on the Internet. Additional details of the change-detection tool are given in the parent application. Different users operate clients 14 from remote sites on Internet 10. These users typically operate browser applications, such as Netscape's Navigator or Microsoft's Internet Explorer, or browser mini-applications such as an Internet toolbar in a larger program. Clients 14 communicate through Internet 10 by sending and receiving TCP/IP packets to establish connections with remote servers, typically using the hypertext transfer protocol (http) of the world-wide web.

Server-Based Change-Detection Tool of Parent Application

Clients 14 retrieve web pages of files from document server 12 through Internet 10. These web pages are identified by a unique URL (uniform resource locator) which specifies a document file containing the text and graphics of a desired web page. Often additional files are retrieved when a document is retrieved. The "document" returned from document server 12 to clients 14 is thus a composite document composed of several files of text, graphics, and perhaps sound or animation. The physical appearance of the web page on the users' browsers on clients 14 is specified by layout information embedded in non-displayed tags, as is well known for HTML (hyper-text markup language) documents. Often these HTML documents contain tags with URL's that specify other web pages, perhaps on other web servers which may be physically located in different cities or countries. These tags create hyper-links to these other web servers allowing the user to quickly jump to other servers. These hyper-links form a complex web of linked servers across the world; hence the name "world-wide web". The users may frequently retrieve files from remote document server 12. Often the same file is retrieved. The users may only be interested in differences in the file or learning when the file is updated, such as when a new product or service is announced. The inventors have developed a software tool that automatically retrieves files and compares the retrieved files to an archived checksum of the file to determine if a change in the file has occurred. When a change is detected, the user is notified by an electronic mail message (e-mail). A copy of the new file may be attached to the e-mail notification, allowing the user to review the changes.

Rather than archive the source files from remote document server 12, the invention described in the parent application archives a checksum or CRC of the source files. These CRC's and the e-mail address of the user are stored in database 16 of change-detection server 20. Comparison is made of the stored or archived CRC of the document and a fresh CRC of the currently-available document. The CRC is a condensed signature or fingerprint of the document. Any change to the document changes the CRC. Alternately, each section of a document can have it's own CRC.

Change-detection server 20 performs three basic functions:

1. Register (setup) a web page document for change detection.

2. Periodically re-fetch the document and compare for changes

3. E-mail a change notice to the registered user if a change is detected.

Change-detection server 20 contains three basic components. Database 16 stores t