← Back to Patent Explorer
US6091724A Expired / Lapsed US ⏱️ 0.0 years remaining

Routing messages within a network using the data content of the message

Assignee: International Business Machines Corp
•
Filing: 1997-11-20
•
Granted: 2000-07-18
•
Expires: 2017-11-20
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A router within a network uses the data of a message received at the router to determine on which links out of the router the message needs to be forwarded. The router does not need any destination information from the message, and thus, the message need not include any destination information. Instead, the router uses an annotated search data structure to determine which links correspond to consumers interested in receiving the message. The message is sent only over those links.

Inventors

  • 👤 Tushar Deepak Chandra
  • 👤 Robert Evan Strom
  • 👤 Daniel Charles Sturman

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-31 19:14
CPC Classifications
H; H04; H04L; H04L12/00; H04L12/02; H04L12/16; H04L12/18; H04L12/1854

Claims Analysis

Total Claims: 40
Claim 1
Independent Claim 131 words
A method of determining zero or more links to be used in routing a message, said method comprising: receiving a message; and determining zero or more links over which said message is to be sent, said determining comprising searching a data structure using at least a portion of a data content of said message to determine said zero or more links, wherein said data structure comprises a plurality of tests performable on said at least a portion of said data content, and said searching comprises following one or more paths of said data structure, but less than all paths of said data structure, based upon results of one or more tests of said plurality of tests performed to determine said zero or more links to be used in routing said message.
Claim 2
Independent Claim 131 words
A method of determining zero or more links to be used in routing a message, said method comprising: receiving a message; and determining zero or more links over which said message is to be sent, said determining comprising searching a data structure using at least a portion of a data content of said message to determine said zero or more links, wherein said data structure comprises a plurality of tests performable on said at least a portion of said data content, and said searching comprises following one or more paths of said data structure, but less than all paths of said data structure, based upon results of one or more tests of said plurality of tests performed to determine said zero or more links to be used in routing said message.
Claim 3
Dependent Claim 25 words
The method of claim 1, wherein said searching comprises traversing said data structure until a mask provides an indication of said zero or more links.
Claim 4
Dependent Claim 61 words
The method of claim 2, wherein said mask comprises a plurality of values the positions of which correspond to a plurality of links, and wherein said indication indicates: zero links when said plurality of values includes a plurality of first predefined values; and one or more links when one or more of said plurality of values includes a second predefined value.
Claim 5
Dependent Claim 28 words
The method of claim 3, wherein said plurality of first predefined values includes a plurality of no indications and wherein said second predefined value includes a yes indication.
Claim 6
Dependent Claim 61 words
The method of claim 2, wherein said traversing comprises: comparing said mask to a vector associated with a node of said data structure; refining said mask when said comparing indicates refinement; proceeding to another node of said data structure, when said mask is to be further refined; and repeating said comparing, refining and proceeding until said mask needs no further refinement.
Claim 7
Dependent Claim 18 words
The method of claim 5, wherein said proceeding comprises using said data content to determine the another node.
Claim 8
Dependent Claim 62 words
The method of claim 5, wherein said mask comprises a plurality of values the positions of which correspond to a plurality of links of a router that received said message, and wherein said refining comprises updating at least one of said plurality of values in said mask based on at least one value of at least one corresponding position in said vector.
Claim 9
Dependent Claim 40 words
The method of claim 7, wherein said updating comprises changing at least one value of the mask from a maybe indication to a yes indication or a no indication, depending on the value in the corresponding position of the vector.
Claim 10
Dependent Claim 48 words
The method of claim 5, further comprising annotating a plurality of nodes of said data structure with a plurality of vectors, each of said plurality of vectors indicating at its corresponding node whether any links may be used to reach one or more clients interested in said message.
Claim 11
Dependent Claim 20 words
The method of claim 1, wherein said data structure comprises a plurality of subscriptions received from a plurality of clients.
Claim 12
Dependent Claim 18 words
The method of claim 1, wherein said receiving and said determining are by a router of a network.
Claim 13
Independent Claim 147 words
A method of routing messages within a network, said method comprising: receiving a message; and routing said message to a subset of clients of said network, said subset comprising less than all of said clients of said network, wherein said routing is irrespective of any destination information that may be within said message, and wherein said routing comprises searching a data structure using at least a portion of a data content of said message to determine said subset of clients, wherein said data structure comprises a plurality of tests performable on said at least a portion of said data content, and said searching comprises following one or more paths of said data structure, but less than all paths of said data structure, based upon results of one or more tests of said plurality of tests performed to determine said subset of clients to be routed said message.
Claim 14
Independent Claim 147 words
A method of routing messages within a network, said method comprising: receiving a message; and routing said message to a subset of clients of said network, said subset comprising less than all of said clients of said network, wherein said routing is irrespective of any destination information that may be within said message, and wherein said routing comprises searching a data structure using at least a portion of a data content of said message to determine said subset of clients, wherein said data structure comprises a plurality of tests performable on said at least a portion of said data content, and said searching comprises following one or more paths of said data structure, but less than all paths of said data structure, based upon results of one or more tests of said plurality of tests performed to determine said subset of clients to be routed said message.
Claim 15
Dependent Claim 155 words
At least one program storage device readable by a machine, tangibly embodying at least one program of instructions executable by the machine to perform a method of determining zero or more links to be used in routing a message, said method comprising: receiving a message; and determining zero or more links over which said message is to be sent, said determining comprising searching a data structure using at least a portion of a data content of said message to determine said zero or more links, wherein said data structure comprises a plurality of tests performable on said at least a portion of said data content, and said searching comprises following one or more paths of said data structure, but less than all paths of said data structure, based upon results of one or more tests of said plurality of tests performed to determine said zero or more links to be used in routing said message.
Claim 16
Dependent Claim 155 words
At least one program storage device readable by a machine, tangibly embodying at least one program of instructions executable by the machine to perform a method of determining zero or more links to be used in routing a message, said method comprising: receiving a message; and determining zero or more links over which said message is to be sent, said determining comprising searching a data structure using at least a portion of a data content of said message to determine said zero or more links, wherein said data structure comprises a plurality of tests performable on said at least a portion of said data content, and said searching comprises following one or more paths of said data structure, but less than all paths of said data structure, based upon results of one or more tests of said plurality of tests performed to determine said zero or more links to be used in routing said message.
Claim 17
Dependent Claim 30 words
The at least one program storage device of claim 13, wherein said searching comprises traversing said data structure until a mask provides an indication of said zero or more links.
Claim 18
Dependent Claim 66 words
The at least one program storage device of claim 14, wherein said mask comprises a plurality of values the positions of which correspond to a plurality of links, and wherein said indication indicates: zero links when said plurality of values includes a plurality of first predefined values; and one or more links when one or more of said plurality of values includes a second predefined value.
Claim 19
Dependent Claim 33 words
The at least one program storage device of claim 15, wherein said plurality of first predefined values includes a plurality of no indications and wherein said second predefined value includes a yes indication.
Claim 20
Dependent Claim 66 words
The at least one program storage device of claim 14, wherein said traversing comprises: comparing said mask to a vector associated with a node of said data structure; refining said mask when said comparing indicates refinement; proceeding to another node of said data structure, when said mask is to be further refined; and repeating said comparing, refining and proceeding until said mask needs no further refinement.
Claim 21
Dependent Claim 23 words
The at least one program storage device of claim 17, wherein said proceeding comprises using said data content to determine the another node.
Claim 22
Dependent Claim 67 words
The at least one program storage device of claim 17, wherein said mask comprises a plurality of values the positions of which correspond to a plurality of links of a router that received said message, and wherein said refining comprises updating at least one of said plurality of values in said mask based on at least one value of at least one corresponding position in said vector.
Claim 23
Dependent Claim 45 words
The at least one program storage device of claim 19, wherein said updating comprises changing at least one value of the mask from a maybe indication to a yes indication or a no indication, depending on the value in the corresponding position of the vector.
Claim 24
Dependent Claim 56 words
The at least one program storage device of claim 17, wherein said method further comprises annotating a plurality of nodes of said data structure with a plurality of vectors, each of said plurality of vectors indicating at its corresponding node whether any links may be used to reach one or more clients interested in said message.
Claim 25
Dependent Claim 25 words
The at least one program storage device of claim 13, wherein said data structure comprises a plurality of subscriptions received from a plurality of clients.
Claim 26
Dependent Claim 171 words
At least one program storage device readable by a machine, tangibly embodying at least one program of instructions executable by the machine to perform a method of routing messages within a network, said method comprising: receiving a message; and routing said message to a subset of clients of said network, said subset comprising less than all of said clients of said network, wherein said routing is irrespective of any destination information that may be within said message, and wherein said routing comprises searching a data structure using at least a portion of a data content of said message to determine said subset of clients, wherein said data structure comprises a plurality of tests performable on said at least a portion of said data content, and said searching comprises following one or more paths of said data structure, but less than all paths of said data structure, based upon results of one or more tests of said plurality of tests performed to determine said subset of clients to be routed said message.
Claim 27
Dependent Claim 171 words
At least one program storage device readable by a machine, tangibly embodying at least one program of instructions executable by the machine to perform a method of routing messages within a network, said method comprising: receiving a message; and routing said message to a subset of clients of said network, said subset comprising less than all of said clients of said network, wherein said routing is irrespective of any destination information that may be within said message, and wherein said routing comprises searching a data structure using at least a portion of a data content of said message to determine said subset of clients, wherein said data structure comprises a plurality of tests performable on said at least a portion of said data content, and said searching comprises following one or more paths of said data structure, but less than all paths of said data structure, based upon results of one or more tests of said plurality of tests performed to determine said subset of clients to be routed said message.
Claim 28
Dependent Claim 220 words
An article of manufacture, comprising: at least one computer usable medium having computer readable program code means embodied therein for causing the determining of zero or more links to be used in routing a message, the computer readable program code means in said article of manufacture comprising: computer readable program code means for causing a computer to receive a message; and computer readable program code means for causing a computer to determine zero or more links over which said message is to be sent, said computer readable program code means for causing a computer to determine comprising computer readable program code means for causing a computer to search a data structure using at least a portion of a data content of said message to determine said zero or more links, wherein said data structure comprises a plurality of tests performable on said at least a portion of said data content, and said computer readable program code means for causing a computer to search comprises computer readable program code means for causing a computer to follow one or more oaths of said data structure, but less than all paths of said data structure, based upon results of one or more tests of said plurality of tests performed to determine said zero or more links to be used in routing said message.
Claim 29
Dependent Claim 220 words
An article of manufacture, comprising: at least one computer usable medium having computer readable program code means embodied therein for causing the determining of zero or more links to be used in routing a message, the computer readable program code means in said article of manufacture comprising: computer readable program code means for causing a computer to receive a message; and computer readable program code means for causing a computer to determine zero or more links over which said message is to be sent, said computer readable program code means for causing a computer to determine comprising computer readable program code means for causing a computer to search a data structure using at least a portion of a data content of said message to determine said zero or more links, wherein said data structure comprises a plurality of tests performable on said at least a portion of said data content, and said computer readable program code means for causing a computer to search comprises computer readable program code means for causing a computer to follow one or more oaths of said data structure, but less than all paths of said data structure, based upon results of one or more tests of said plurality of tests performed to determine said zero or more links to be used in routing said message.
Claim 30
Dependent Claim 47 words
The article of manufacture of claim 24, wherein said computer readable program code means for causing a computer to search comprises computer readable program code means for causing a computer to traverse said data structure until a mask provides an indication of said zero or more links.
Claim 31
Dependent Claim 112 words
The article of manufacture of claim 25, wherein said computer readable program code means for causing a computer to traverse comprises: computer readable program code means for causing a computer to compare said mask to a vector associated with a node of said data structure; computer readable program code means for causing a computer to refine said mask when said comparing indicates refinement; computer readable program code means for causing a computer to proceed to another node of said data structure, when said mask is to be further refined; and computer readable program code means for causing a computer to repeat comparing, refining and proceeding until said mask needs no further refinement.
Claim 32
Dependent Claim 84 words
The article of manufacture of claim 26, wherein said mask comprises a plurality of values the positions of which correspond to a plurality of links of a router that received said message, and wherein said computer readable program code means for causing a computer to refine comprises computer readable program code means for causing a computer to update at least one of said plurality of values in said mask based on at least one value of at least one corresponding position in said vector.
Claim 33
Dependent Claim 235 words
An article of manufacture, comprising: at least one computer usable medium having computer readable program code means embodied therein for causing the routing of messages within a network, the computer readable program code means in said article of manufacture comprising: computer readable program code means for causing a computer to receive a message; and computer readable program code means for causing a computer to route said message to a subset of clients of said network, said subset comprising less than all of said clients of said network, wherein routing is irrespective of any destination information that may be within said message, and wherein said computer readable program code means for causing a computer to route comprises computer readable program code means for causing a computer to search a data structure using at least a portion of a data content of said message to determine said subset of clients, wherein said data structure comprises a plurality of tests performable on said at least a portion of said data content, and said computer readable program code means for causing a computer to search comprises computer readable program code means for causing a computer to follow one or more paths of said data structure, but less than all paths of said data structure, based upon results of one or more tests of said plurality of tests performed to determine said subset of clients to be routed said message.
Claim 34
Dependent Claim 235 words
An article of manufacture, comprising: at least one computer usable medium having computer readable program code means embodied therein for causing the routing of messages within a network, the computer readable program code means in said article of manufacture comprising: computer readable program code means for causing a computer to receive a message; and computer readable program code means for causing a computer to route said message to a subset of clients of said network, said subset comprising less than all of said clients of said network, wherein routing is irrespective of any destination information that may be within said message, and wherein said computer readable program code means for causing a computer to route comprises computer readable program code means for causing a computer to search a data structure using at least a portion of a data content of said message to determine said subset of clients, wherein said data structure comprises a plurality of tests performable on said at least a portion of said data content, and said computer readable program code means for causing a computer to search comprises computer readable program code means for causing a computer to follow one or more paths of said data structure, but less than all paths of said data structure, based upon results of one or more tests of said plurality of tests performed to determine said subset of clients to be routed said message.
Claim 35
Independent Claim 142 words
A system of determining zero or more links to be used in routing a message, said system comprising: a router being adapted to receive a message; and said router being further adapted to determine zero or more links over which said message is to be sent, the determining comprising searching a data structure using at least a portion of a data content of said message to determine said zero or more links, wherein said data structure comprises a plurality of tests performable on said at least a portion of said data content, and said searching comprises following one or more paths of said data structure, but less than all paths of said data structure, based upon results of one or more tests of said plurality of tests performed to determine said zero or more links to be used in routing said message.
Claim 36
Independent Claim 142 words
A system of determining zero or more links to be used in routing a message, said system comprising: a router being adapted to receive a message; and said router being further adapted to determine zero or more links over which said message is to be sent, the determining comprising searching a data structure using at least a portion of a data content of said message to determine said zero or more links, wherein said data structure comprises a plurality of tests performable on said at least a portion of said data content, and said searching comprises following one or more paths of said data structure, but less than all paths of said data structure, based upon results of one or more tests of said plurality of tests performed to determine said zero or more links to be used in routing said message.
Claim 37
Dependent Claim 28 words
The system of claim 29, wherein said router is further adapted to traverse said data structure until a mask provides an indication of said zero or more links.
Claim 38
Dependent Claim 64 words
The system of claim 30, wherein said router is further adapted to: compare said mask to a vector associated with a node of said data structure; refine said mask when the comparing indicates refinement; proceed to another node of said data structure, when said mask is to be further refined; and repeat the comparing, refining and proceeding until said mask needs no further refinement.
Claim 39
Independent Claim 156 words
A system of routing messages within a network, said system comprising: means for receiving a message; and means for routing said message to a subset of clients of said network, said subset comprising less than all of said clients of said network, wherein said routing is irrespective of any destination information that may be within said message, and wherein said means for routing comprising means for searching a data structure using at least a portion of a data content of said message to determine said zero or more links, wherein said data structure comprises a plurality of tests performable on said at least a portion of said data content, and said searching comprises following one or more paths of said data structure, but less than all paths of said data structure, based upon results of one or more tests of said plurality of tests performed to determine said subset of clients to be routed said message.
Claim 40
Independent Claim 156 words
A system of routing messages within a network, said system comprising: means for receiving a message; and means for routing said message to a subset of clients of said network, said subset comprising less than all of said clients of said network, wherein said routing is irrespective of any destination information that may be within said message, and wherein said means for routing comprising means for searching a data structure using at least a portion of a data content of said message to determine said zero or more links, wherein said data structure comprises a plurality of tests performable on said at least a portion of said data content, and said searching comprises following one or more paths of said data structure, but less than all paths of said data structure, based upon results of one or more tests of said plurality of tests performed to determine said subset of clients to be routed said message.

References Cited (Backward Citations)

US5557798A Cited
US5257369A Cited
US5522046A Cited
US5581764A Cited
US5325362A Cited
US5555244A Cited
US5604867A Cited
US5517562A Cited
US5570366A Cited
US5870605A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-07-18 2004-01-17 2004-07-18 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-07-18 2008-01-17 2008-07-18 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-07-18 2012-01-17 2012-07-18 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag