WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Multicasting with key words    
United States Patent5893091   
Link to this pagehttp://www.wikipatents.com/5893091.html
Inventor(s)Hunt; Douglas (Seattle, WA); Calvi; Mauro (Bellevue, WA); Bennett; Carlen Brett (Seattle, WA); Hines, Jr.; Robert L. (Seattle, WA); Peterson; James (Seattle, WA)
AbstractA method for distributing timely information over a computer network where a Timely Information Server collects and organizes information from Timely Information Providers and then broadcasts the organized information to endusers in the form of an alerts over a plurality of alert channels. The alert is comprised of keywords and arguments, wherein the keywords describe the subject matter of the alert and the arguments provide content of the alert. The Timely Information Server maintains a dictionary of all possible keywords and the endusers copy a portion of the dictionary to their local computers to create individual keyword profiles which are comprised of keywords and Boolean operators. When an alert satisfies a Boolean equation in a users keyword profile the headline of the alert (stored as an argument) is displayed and the user is given the option to link his/her web browser to an associated URL (also stored as an argument).
   














 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 5893091
Multicasting with key words - US Patent 5893091 Drawing
Multicasting with key words
Inventor     Hunt; Douglas (Seattle, WA); Calvi; Mauro (Bellevue, WA); Bennett; Carlen Brett (Seattle, WA); Hines, Jr.; Robert L. (Seattle, WA); Peterson; James (Seattle, WA)
Owner/Assignee     Immediata Corporation (Seattle, WA)
Patent assignment
All assignments
Publication Date     April 6, 1999
Application Number     08/827,829
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     April 11, 1997
US Classification    
Int'l Classification    
Examiner     Black; Thomas G.
Assistant Examiner     Wallace Jr.; Michael J.
Attorney/Law Firm     Graybeal Jackson Haley, LLP
Address
Parent Case    
Priority Data    
USPTO Field of Search    
Patent Tags     multicasting key words
   
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
5796952
Davis

Aug,1998

[0 after 0 votes]
5761662
Dasan
707/10
Jun,1998

[0 after 0 votes]
5754938
Herz

May,1998

[0 after 0 votes]
5754939
Herz

May,1998

[0 after 0 votes]
5727129
Barrett
706/10
Mar,1998

[0 after 0 votes]
5694594
Chang
707/6
Dec,1997

[0 after 0 votes]
5634048
Ryu
707/10
May,1997

[0 after 0 votes]
5557798
Skeen

Sep,1996

[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 method for allowing a server computer, via a computer network, to cause a client computer to connect to an information site on the network based on a match of keywords, comprising:

(a) creating a list containing a plurality of keywords,

(b) storing in a memory on said client computer one or more selected keywords from said list,

(c) storing on one or more information server computers connected to the network a plurality of sites of information, each at an address on the network,

(d) associating with each address a set of keywords, each set comprising one or more keywords from said list,

(e) for each address of the plurality of addresses, transmitting across the computer network from a keyword server computer to said client computer the address and the associated set of one or more keywords, and

(f) at said client computer, comparing the transmitted keywords with said selected keywords and, if there is a match, causing said client computer to request a transmission of information from the site at the address associated with the matched keyword.

2. The method of claim 1 wherein, before the transmission of information is requested, a user is presented with a choice of whether the information should be requested and, if the user's response is affirmative, the information is requested.

3. The method of claim 1 wherein the step of comparing the transmitted keywords with said selected keywords is a Boolean operation.

4. The method of claim 1 wherein said sites of information are hypertext documents and said associated address is a Uniform Resource Locator.

5. The method of claim 2 adapted for collecting information on matches of keywords at the client computer further comprising:

(a) collecting in a memory on the client computer, for an affirmative user's response, a record consisting of one of: the address associated with the keyword which is matched, or the keyword which is matched, or the action taken by the client computer as a result of the match and the user's affirmative response, and

(b) transmitting said record across the computer network to a record collecting computer.

6. The method of claim 1 wherein, to create the association between an address and a set of keywords, the keyword server computer:

(a) queries, across the network, an information server computer having a site,

(b) receives from said queried information server computer a copy of information contained at the site,

(c) reads each word in said information from said site and compares each word to said list of keywords, and

(d) selects from said list of keywords those words which it finds in said information.

7. The method of claim 1 wherein said client computer is associated with a television tuner and a display for displaying information received from a site.

8. The method of claim 1 wherein the selected keywords are selected at a keyword selection computer and transmitted to the client computer across a network.

9. The method of claim 8 wherein the selection computer selects the selected keywords based on an interest profile provided by a user at the client computer and transmitted to the selection computer across a network.

10. A method for allowing a server computer, via a multicast network, to cause a plurality of client computers each to take an action relative to an argument based on a match of keywords, comprising:

(a) creating a list containing a plurality of keywords,

(b) on each of a plurality of client computers, storing in a memory one or more selected keywords from said list,

(c) defining a plurality of arguments,

(d) associating with each argument a set of keywords, each set comprising one or more keywords from said list,

(e) for each argument of the plurality of arguments, multicasting across a computer network from a keyword server computer simultaneously to each of said plurality of client computers via multicast addressed packets the argument and the associated set of one or more keywords, and

(f) at each of said client computers, comparing the transmitted keywords with said selected keywords and, if there is a match, causing the client computer to take an action relative to the argument associated with the matched keyword.

11. The method of claim 10 wherein the selected keywords are selected at a keyword selection computer and transmitted to the client computer across a network.

12. The method of claim 11 wherein the selection computer selects the selected keywords based on an interest profile provided by a user at the client computer and transmitted to the selection computer across a network.

13. The method of claim 10 adapted for distributing information from a server computer to a plurality of client computers via a network, further comprising:

(a) assembling a plurality of items of information,

(b) associating with each item one of the sets of one or more keywords and causing said item to be represented in the argument associated with said set of one or more keywords, and

(c) the action taken by the client computer is to present to a user the item associated with the matched keyword.

14. The method of claim 13 wherein, before said item is presented, the user is presented with an option to have said item presented and said item is not presented if the user does not indicate a preference to have said item presented.

15. The method of claim 13 wherein said item is presented visually on a display.

16. The method of claim 13 wherein said item is presented aurally through a speaker.

17. The method of claim 10 wherein one of the sets of one or more keywords represents an item for sale in a market and the associated argument represents a reference to triggering information about said item, the action is taken if the triggering information meets a predefined threshold, and the action taken is to place in the market an order to buy or to sell said item.

18. The method of claim 17 wherein each keyword set represents a commodity and the associated argument includes one of the current price and the current volume traded for said commodity.

19. The method of claim 10 wherein one of the sets of one or more keywords represents an available property, the associated argument represents a reference to triggering information about the property, and the action is taken if the triggering information meets a predefined threshold.

20. The method of claim 19 wherein the action taken is to retrieve more information about the property.

21. The method of claim 19 wherein the action taken is to place an option to acquire the property.

22. The method of claim 10 wherein the argument associated with a matched set of keywords represents a reference to an event, the action is taken if the event fits a predefined filter for such events, and the action taken is to adjust a control for an appliance which is connected to the client computer.

23. The method of claim 22 wherein said appliance is a communications receiver.

24. The method of claim 23 wherein said communications receiver is a television.

25. The method of claim 22 wherein said appliance is an environmental control device.

26. The method of claim 10 wherein, before the action is taken, a user is presented with a choice of whether the action should be taken and, if the user's response is affirmative, the action is taken.

27. The method of claim 10 wherein the step of comparing the transmitted keywords with said selected keywords is a Boolean operation.

28. The method of claim 26 adapted for collecting information on matches of keywords at the client computer further comprising:

(a) collecting in a memory on the client computer, for an affirmative user's response, a record consisting of one of: the argument associated with the keyword which is matched, or the keyword which is matched, or the action taken by the client computer as a result of the match and the user's affirmative response, and

(b) transmitting said record across the computer network to a record collecting computer.

29. A method for allowing a server computer, via a network, to cause a client computer to take an action relative to an argument based on a match of keywords, comprising:

(a) creating a list containing a plurality of keywords,

(b) storing in a memory on said client computer one or more selected keywords from said list,

(c) defining a plurality of arguments,

(d) associating with each argument a set of keywords, each set comprising two or more keywords from said list,

(e) for each argument of the plurality of arguments, transmitting across a computer network from a keyword server computer to said client computer the argument and the associated set of two or more keywords, and

(f) at said client computer, comparing the transmitted keywords with said selected keywords and, if there is a match, causing said client computer to take an action relative to the argument associated with the matched keyword.

30. The method of claim 29 adapted for distributing information from a server computer to a client computer via a network, further comprising:

(a) assembling a plurality of items of information,

(b) associating with each item one of the sets of two or more keywords and causing said item to be represented in the argument associated with said set of two or more keywords, wherein the action taken by the client computer is to present to a user said item.

31. The method of claim 30 wherein, before said item is presented, the user is presented with an option to have said item presented and said item is not presented if the user does not indicate a preference to have said item presented.

32. The method of claim 30 wherein said item is presented visually on a display.

33. The method of claim 30 wherein said item is presented aurally via a speaker.

34. A method for allowing a server computer, via a network, to cause a client computer to adjust a channel selector to receive information broadcast on a channel, comprising:

(a) creating a list containing a plurality of keywords,

(b) storing in a memory on said client computer one or more selected keywords from said list,

(c) defining a plurality of channel references, one for each channel of a plurality of channels on which information is simultaneously broadcast to a plurality of receivers,

(d) associating with each channel reference a set of keywords, each set comprising one or more keywords from said list,

(e) for each channel reference of the plurality of channel references, transmitting across a computer network from a keyword server computer to said client computer the channel reference and the associated set of one or more keywords, and

(f) at said client computer, comparing the transmitted keywords with said selected keywords and, if there is a match, causing said client computer to adjust a channel selector on one of the plurality of receivers to receive the channel associated with the matched keyword.

35. A method for allowing a server computer, via a network, to cause a client computer to take an action relative to an argument based on a match of keywords and collecting data via the network about the actions taken, comprising:

(a) creating a list containing a plurality of keywords,

(b) storing in a memory on said client computer a set of one or more selected keywords from said list and storing on a data collecting computer the same set of one or more selected keywords,

(c) defining a plurality of arguments,

(d) associating with each argument a set of keywords, each set comprising one or more keywords from said list,

(e) for each argument of the plurality of arguments, transmitting across a computer network from a keyword server computer to said client computer and to said data collecting computer the argument and the associated set of one or more keywords,

(f) at said client computer, when the client computer logs on for receiving said transmitted arguments and keywords, sending a log on notice to said data collecting computer,

(g) at said client computer, comparing the transmitted keywords with said selected keywords and, if there is a match, causing said client computer to take an action relative to the argument associated with the matched keyword,

(h) at said client computer, when the client computer logs off from receiving said transmitted arguments and keywords, sending a log off notice to said data collecting computer, and

(i) at said data collecting computer, inferring a list of keyword matches made by said client computer from the received data consisting of selected keywords on the client, when the client logged on and logged off, and which keywords were transmitted during log on at the client.

36. A system for allowing a server computer, via a computer network, to cause a client computer to connect to an information site on the network based on a match of keywords, comprising:

(a) means for creating a list containing a plurality of keywords,

(b) means for storing in a memory on said client computer one or more selected keywords from said list,

(c) means for storing on one or more information server computers connected to the network a plurality of sites of information, each at an address on the network,

(d) means for associating with each address a set of keywords, each set comprising one or more keywords from said list,

(e) for each address of the plurality of addresses, means for transmitting across the computer network from a keyword server computer to said client computer the address and the associated set of one or more keywords, and

(f) means for, at said client computer, comparing the transmitted keywords with said selected keywords and, if there is a match, causing said client computer to request a transmission of information from the site at the address associated with the matched keyword.

37. The system of claim 36 further including, before the transmission of information is requested, means for presenting to a user a choice of whether the information should be requested and, if the user's response is affirmative, requesting the information.

38. The system of claim 36 wherein the means for comparing the transmitted keywords with said selected keywords performs a Boolean operation.

39. The system of claim 36 wherein said sites of information are hypertext documents and said associated address is a Uniform Resource Locator.

40. The system of claim 37 adapted for collecting information on matches of keywords at the client computer further comprising:

(a) means for collecting in a memory on the client computer, for an affirmative user's response, a record consisting of one of: the address associated with the keyword which is matched, or the keyword which is matched, or the action taken by the client computer as a result of the match and the user's affirmative response, and

(b) means for transmitting said record across the computer network to a record collecting computer.

41. The system of claim 36 wherein, to create the association between an address and a set of keywords, the keyword server computer further includes:

(a) means for quering, across the network, an information server computer having a site,

(b) means for receiving from said queried information server computer a copy of information contained at the site,

(c) means for reading each word in said information from said site and comparing each word to said list of keywords, and

(d) means for selecting from said list of keywords those words which it finds in said information.

42. The system of claim 36 wherein said client computer is associated with a television tuner and a display for displaying information received from a site.

43. The system of claim 36 wherein the selected keywords are selected at a keyword selection computer and transmitted to the client computer across a network.

44. The system of claim 43 wherein the selection computer selects the selected keywords based on an interest profile provided by a user at the client computer and transmitted to the selection computer across a network.

45. A system for allowing a server computer, via a multicast network, to cause a plurality of client computers each to take an action relative to an argument based on a match of keywords, comprising:

(a) means for creating a list containing a plurality of keywords,

(b) means for, on each of a plurality of client computers, storing in a memory one or more selected keywords from said list,

(c) means for defining a plurality of arguments,

(d) means for associating with each argument a set of keywords, each set comprising one or more keywords from said list,

(e) for each argument of the plurality of arguments, meaans for multicasting across a computer network from a keyword server computer simultaneously to each of said plurality of client computers via multicast addressed packets the argument and the associated set of one or more keywords, and

(f) means for, at each of said client computers, comparing the transmitted keywords with said selected keywords and, if there is a match, causing the client computer to take an action relative to the argument associated with the matched keyword.

46. The system of claim 45 wherein the selected keywords are selected at a keyword selection computer and transmitted to the client computer across a network.

47. The system of claim 46 wherein the selection computer selects the selected keywords based on an interest profile provided by a user at the client computer and transmitted to the selection computer across a network.

48. The system of claim 45 adapted for distributing information from a server computer to a plurality of client computers via a network, further comprising:

(a) means for assembling a plurality of items of information, and

(b) means for associating with each item one of the sets of one or more keywords and causing said item to be represented in the argument associated with said set of one or more keywords,

(c) wherein the action taken by the client computer is to present to a user the item associated with the matched keyword.

49. The system of claim 48 wherein, before said item is presented, the user is presented with an option to have said item presented and said item is not presented if the user does not indicate a preference to have said item presented.

50. The system of claim 48 wherein said item is presented visually on a display.

51. The system of claim 48 wherein said item is presented aurally through a speaker.

52. The system of claim 45 wherein one of the sets of one or more keywords represents an item for sale in a market and the associated argument represents a reference to triggering information about said item, the action is taken if the triggering information meets a predefined threshold, and the action taken is to place in the market an order to buy or to sell said item.

53. The system of claim 52 wherein each keyword set represents a commodity and the associated argument includes one of the current price and the current volume traded for said commodity.

54. The system of claim 45 wherein one of the sets of one or more keywords represents an available property, the associated argument represents a reference to triggering information about the property, and the action is taken if the triggering information meets a predefined threshold.

55. The system of claim 54 wherein the action taken is to retrieve more information about the property.

56. The system of claim 54 wherein the action taken is to place an option to acquire the property.

57. The system of claim 45 wherein the argument associated with a matched set of keywords represents a reference to an event, the action is taken if the event fits a predefined filter for such events, and the action taken is to adjust a control for an appliance which is connected to the client computer.

58. The system of claim 57 wherein said appliance is a communications receiver.

59. The system of claim 58 wherein said communications receiver is a television.

60. The system of claim 57 wherein said appliance is an environmental control device.

61. The system of claim 45 wherein, before the action is taken, a user is presented with a choice of whether the action should be taken and, if the user's response is affirmative, the action is taken.

62. The system of claim 45 further including means for comparing the transmitted keywords with said selected keywords in a Boolean operation.

63. The system of claim 61 adapted for collecting information on matches of keywords at the client computer further comprising:

(a) means for collecting in a memory on the client computer, for an affirmative user's response, a record consisting of one of: the argument associated with the keyword which is matched, or the keyword which is matched, or the action taken by the client computer as a result of the match and the user's affirmative response, and

(b) means for transmitting said record across the computer network to a record collecting computer.

64. A system for allowing a server computer, via a network, to cause a client computer to take an action relative to an argument based on a match of keywords, comprising:

(a) means for creating a list containing a plurality of keywords,

(b) means for storing in a memory on said client computer one or more selected keywords from said list,

(c) means for defining a plurality of arguments,

(d) means for associating with each argument a set of keywords, each set comprising two or more keywords from said list,

(e) means for, for each argument of the plurality of arguments, transmitting across a computer network from a keyword server computer to said client computer the argument and the associated set of two or more keywords, and

(f) means for, at said client computer, comparing the transmitted keywords with said selected keywords and, if there is a match, causing said client computer to take an action relative to the argument associated with the matched keyword.

65. The system of claim 64 adapted for distributing information from a server computer to a client computer via a network, further comprising:

(a) means for assembling a plurality of items of information, and

(b) means for associating with each item one of the sets of two or more keywords and causing said item to be represented in the argument associated with said set of two or more keywords,

(c) wherein the action taken by the client computer is to present to a user said item.

66. The system of claim 65 wherein, before said item is presented, the user is presented with an option to have said item presented and said item is not presented if the user does not indicate a preference to have said item presented.

67. The system of claim 65 wherein said item is presented visually on a display.

68. The system of claim 65 wherein said item is presented aurally via a speaker.

69. A system for allowing a server computer, via a network, to cause a client computer to adjust a channel selector to receive information broadcast on a channel, comprising:

(a) means for creating a list containing a plurality of keywords,

(b) means for storing in a memory on said client computer one or more selected keywords from said list,

(c) means for defining a plurality of channel references, one for each channel of a plurality of channels on which information is simultaneously broadcast to a plurality of receivers,

(d) means for associating with each channel reference a set of keywords, each set comprising one or more keywords from said list,

(e) means for, for each channel reference of the plurality of channel references, transmitting across a computer network from a keyword server computer to said client computer the channel reference and the associated set of one or more keywords, and

(f) means for, at said client computer, comparing the transmitted keywords with said selected keywords and, if there is a match, causing said client computer to adjust a channel selector on one of the plurality of receivers to receive the channel associated with the matched keyword.

70. A system for allowing a server computer, via a network, to cause a client computer to take an action relative to an argument based on a match of keywords and collecting data via the network about the actions taken, comprising:

(a) means for creating a list containing a plurality of keywords,

(b) means for storing in a memory on said client computer a set of one or more selected keywords from said list and storing on a data collecting computer the same set of one or more selected keywords,

(c) means for defining a plurality of arguments,

(d) means for associating with each argument a set of keywords, each set comprising one or more keywords from said list,

(e) means for, for each argument of the plurality of arguments, transmitting across a computer network from a keyword server computer to said client computer and to said data collecting computer the argument and the associated set of one or more keywords,

(f) means for, at said client computer, when the client computer logs on for receiving said transmitted arguments and keywords, sending a log on notice to said data collecting computer,

(g) means for, at said client computer, comparing the transmitted keywords with said selected keywords and, if there is a match, causing said client computer to take an action relative to the argument associated with the matched keyword,

(h) means for, at said client computer, when the client computer logs off from receiving said transmitted arguments and keywords, sending a log off notice to said data collecting computer, and

(i) means for, at said data collecting computer, inferring a list of keyword matches made by said client computer from the received data consisting of selected keywords on the client, when the client logged on and logged off, and which keywords were transmitted during log on at the client.
 Description Submit all comments and votes
 


FIELD OF THE INVENTION

The present invention relates generally to a system for managing and distributing information, and more particularly to a system for managing and distributing information via the global computer network and providing a unified system for organizing information.

BACKGROUND OF THE INVENTION

The Global Computer Network, more commonly referred to as the Internet, is comprised of many individual networks, such as NSFNet and the Defense Data Network, along with gateways to others, such as Bitnet. The Internet is a Transmission Control Protocol/Internet Protocol (TCP/IP) based network linking millions of computers around the world. The use of TCP/IP allows a wide variety of computers to communicate with one another including Unix workstations, personal computers running MS DOS, Windows, Linux, OS2, MacOS, BeOS, IBM mainframes, DEC mini-computers, and even Cray supercomputers.

The Word Wide Web (WWW) is a network of servers on the Internet, each of which has one or more home pages, and which provides information and hypertext links to other documents on that and other servers. The Word Wide Web was developed in 1989 by Tim Berners-Lee at the European Laboratory for Particle Physics (CERN). World Wide Web servers communicate with clients by using the Hypertext Transfer Protocol (HTTP). The resources on the Worldwide Web are provided with Uniform Resource Locators (URLs) which provide an address for the servers that are part of the World Wide Web portion of the Internet. The documents which make up the substance of the World Wide Web are typically viewed using specialized software packages referred to as browsers. When a browser is directed to a URL and the hypertext document associated with URL is displayed by the browser or an associated helper application.

Uniform Resource Locators are a naming scheme for specifying how and where to find any Internet server resource, such as Gopher, FTP, WAIS or Web servers. World Wide Web hypertext documents use URLs to reference other hypertext resources.

The hypertext transfer protocol (HTTP) is an Internet protocol designed expressly for the rapid distribution of hypertext documents. Like other Internet tools, such as FTP, WAIS, or Gopher, HTTP is a client-server protocol. In the client-server model, a client program running on the user's machine sends a message requesting service to a server program running on another machine on the Internet. The server responds to the request by sending a message back to the client. In exchanging these messages the client and the server use a well understood protocol. FTP, WAIS, and Gopher are other examples of Internet client-server protocols, all of which are accessible to a World Wide Web browser.

The HTTP protocol is designed expressly for the delivery of hypertext documents. At the simplest level, HTTP servers act much like anonymous FTP servers, delivering files when clients request them. However, HTTP servers support additional important features including the ability to return to the client not just files, but also information generated by programs running on the server and the ability to take data sent from the client and pass this information on to other programs on the server for further processing. These special server site programs are called gateway programs, because they usually act as a gateway between the HTTP server and other local resources, such as databases. Just as an FTP server can access many files, an HTTP server can access many gateway programs; in both cases, you can specify which resources, files, or programs you want through a URL. The interaction between the server and these gateway programs is governed by the Common Gateway Interface (CGI) specifications. Using the CGI specifications, a programmer can easily write simple programs or scripts to process user queries, interrogate data bases, make images that respond to mouse clicks, download a program to the client machine or any number of other functions.

The Hypertext Markup Language, or HTML, is the language used to prepare hypertext documents. HTML contains commands, called tags, to mark text as headings, paragraphs, lists, quotations, emphasize and so on. It also has tags for including images within the documents, for including fill-in forms that accept user input, and most importantly, for including hypertext links connecting the document being read to other documents or Internet resources such as WAIS databases and anonymous FTP sites. Hypertext links allow a person to click on a string of highlighted text and access a new document, an image, or a movie file from a computer thousands of miles away. The document is specified by URL, which is included in the HTML markup instruction and which is used by the browser to find the designated resource. URLs can point to other HTML documents, pictures, sound files, movie files, or even database search engines. They can be on a local computer or anywhere on the Internet. They can be accessed from HTTP servers or from FTP, Gopher, WAIS, or other servers.

Internet Protocol Multicast (IP Multicast) is a client-server protocol which provides one-to-many and many-to-one communications capability across the Internet. This is substantially different from the traditional one-to-one or point-to-point connections that most current LAN and WAN applications support. Multicasting allows for video conferencing, electronic whiteboards and other multimedia uses for networks as well as non-multimedia applications such as updating mail server databases.

IP Multicast allows the same message to be sent to many locations at once instead of sending the same message to single locations over and over again. IP Multicasting allows routers to efficiently locate routes to many networks and endusers at once. The protocol also allows a single copy of each packet to be sent on a shared link and ensures that packets are only sent to links that have at least one recipient, thereby addressing both networking load and security concerns.

IP Multicast requires destination hosts wanting to receive a multicast to subscribe (register), using the Internet Group Management Protocol (IGMP). IGMP also supports other related functions, such as leaving a multicast group or specifying an alternate route. Subscribing is done by specifying the Class D IP address used for the particular multicast (similar to tuning to a particular radio station). Routers track such IGMP requests and build a connectivity tree for each possible sender to each registered receiver. When multicast traffic is received from a particular sender, the router uses its tree for that sender to determine on which ports traffic needs to be forwarded. IP Multicast, IGMP, and PIM are further described and defined in RFC 1112 and MBONE Multicasting Tomorrow's Internet, Savetz, Randall and Lepage, IDG Books, Foster City, Calif. 1996.

There are three potential router to router protocols to support routers dynamically learning which multicast group's data need to be sent out which ports. This process is commonly referred to as building trees and the protocols are: Protocol Independent Multicast (PIM) (supported by the ITF and Cisco) which works with more protocols than just TCP/IP; Distance Vector Multicast Routing Protocol (DVMRP, used by MBONE and supported by Bay Networks); and Multicast Open Shortest Path First (MOSPF, supported by Proteon). Apple Simple Multicast Routing Protocol (SMRP) provides similar capabilities but currently only for Appletalk traffic from applications such as Quicktime Conference.

The most common of the router protocols is Protocol Independent Multicast. PIM's big advantage is that it supports multicast traffic over existing unicast routing protocols, such as IGRP, IS--IS, OSPF, and RIP. Protocol Independent Multicast is further defined as having two distinct modes, dense-mode PIM and sparse-mode PIM.

Dense-mode PIM is intended for networks in which most LANs need to receive the multicast (such as LAN TV, corporate information broadcasts, and other broadcast events). It uses reverse path forwarding, in which the traffic is initially sent to (flooded) all router interfaces (except the one on which it arrived). Downstream routers that do not need a traffic feed (either because they have no receivers on their interface or because they are already receiving the feed from another port) reply with a prune message, asking to be removed from the forwarding list (the tree).

Sparse-mode PIM is generally intended for networks in which several different multicasts (each going to a small number of receivers) are typically in progress simultaneously (such as desk top video conferencing, collaborative computing, and whiteboard applications). Senders and receivers first register with a single router, which is designated the rendezvous point. Traffic is sent by the server to the rendezvous point, which then forwards it to the registered receivers. As intermediate routers see the source and destination of the multicast traffic (it is unlikely that the best path from the source to destination goes through the rendezvous point), they optimize the paths so that the traffic takes a more direct route (likely bypassing the rendezvous point). Traffic is still sent to the rendezvous point, in anticipation of new receivers registering.

One of the most prominent developments to arise out of multicasting has been a shift in the way in which information is gathered and distributed on the Internet. Traditionally, information distribution has occurred through the client-pull model. The new paradigm for information retrieval and distribution is the server-push model.

An example of the client-pull model is a user directing a browser to a particular URL (this is a request for information), the server responds by transferring the HTML associated with the specified URL via HTTP, the user's browser decodes the HTML and displays the hypertext document it defines. This is how the user's client application, the browser, "pulls" information off the server. Often the retrieved hypertext document will have tags referring to other URLs which the user can access by selecting the tag and thereby "pulling" even more information off the server.

In the server-push model, a server multicasts ("pushes") information over a communication channel were it can be accessed by multiple clients by tuning into the appropriate channel much in the same way a television is tuned. The new push technology category of software solves three major problems. First, it reduces the bandwidth used by users who are continuously accessing news services via their browsers. Second, because the channels are organized by topic, it frees the user from having to search through information they are not interested in viewing. Third, it allows for greater control over what the users can access, a distinct advantage in an educational or corporate environment.

The server-push model also enhances the options for information distribution across an enterprise. Users can be provided with custom data from news services and other Websites. Users can send out personalized messages with requests for responses, they can send multimedia files, and even request information from remote databases. These messages can be sent in a variety of means, including pop-up boxes, ticker tapes, screen savers, and wallpaper.

The server-push model and the wide variety of "push" technologies derived from it have provided the user with new sources of information and may reduce the amount of time spent actively searching the Internet for information. However, there is as of yet no coherent method for the user to identify what information he wants to receive. In most prior art implementations the user has only limited options for filtering the information being "pushed" at him/her. Furthermore, most prior art implementations of push technology limit the response available to user. In many instances the user gets a URL pushed at him so that he/she ends up reverting to the traditional client-pull model. There is a need for a push based information distribution method which provides a users with a coherent means for filtering what information is received and intelligently responding to the information. There is a further need for a push based information system that is not based upon a store-and-forward model. There is yet a further need for an information server which does not retain any third party information and is therefore able to minimize the need for scale dependent server hardware and the operational complexity associated with a large datacenter.

SUMMARY OF THE INVENTION

The present invention, referred to as a Timely Information Server, is a real-time notification system available to Internet, intranet, LAN, and WAN users. The Timely Information Server is comprised of a method and device for managing and distributing information (in the form of alerts divided into a keyword-part and an argument-part) over a data network. The invention is based upon the server-push model and delivers user notifications of new information posted by participating content providers (referred to as Timely Information Providers) via IP Multicast. In the preferred embodiment, the device on which the client portion of the present invention is implemented is a personal computer connected to a computer network. However, the client may also be implemented as part of a television based information retrieval system or some other device designed to receive the alert signals. While the preferred embodiment uses Internet Protocol Multicast (IP Multicast), alternative broadcasting protocols may be used.

Users can monitor any number of Timely Information Server channels with client software that runs outside of a web browser. Different channels broadcast alerts concerning different types of information (e.g. news, weather, traffic, sports, advertisements, stocks). When an alert is received that meets a predefined set of notification criteria (satisfies a Boolean equation) the client software will execute a program associated with the alert. In the preferred embodiment, when an alert is received that satisfies the notification criteria, a message box containing the alert headline is displayed to the user. Clicking on the message box causes the user's browser to link to a URL associated with the alert (the URL is contained in the argument-part of the alert) and view the details of the story. Alternatively, satisfying the notification criteria may also cause the computer to execute a program that does not require any user intervention.

In the preferred embodiment, the Timely Information Server receives computer readable records (alerts) containing information (in the form of keyword and argument subrecords) from numerous Timely Information Providers, organizes and indexes the information, and broadcasts the information to a plurality of client computers using IP Multicast. The information is organized and indexed by storing the information contained in the record in one or more subrecords referred to as arguments and associating one or more descriptive keywords with the arguments. Both the keywords and the arguments may be elements of the Boolean function used to determine whether or not the notification criteria have been satisfied. In one embodiment a Boolean operation is preformed on the keywords as a first filter and a second Boolean operation examines the contents of the arguments to determine if the alert should be presented to the user or cause the execution of a predefined program. In general, keywords identify the subject matter of the information while the arguments provide content. All of the possible keywords are predefined by the Timely Information Server and are stored in a keyword dictionary on the server.

The notification criteria are based upon a combination of keywords or keywords and arguments arranged as a boolean function. It is the keywords which determine whether or not a incoming record will be evaluated to see if it meets the notification criteria. The keywords used to define the notification criteria are the same as those assigned to an information record by the server and are also taken from the keyword dictionary. The notification criter