System and method for routing messages within a messaging system
First Claim
1. A computer-implemented method for transmitting a message over a computer network, said network having a current node, a target node, and one or more intermediate nodes connected to the network between the current node and the target node, the method comprising:
- creating a destination alternative table of the intermediate nodes located on the network having transmission costs to the target node that are less than the transmission costs of the current node to the target node, wherein the intermediate nodes are prioritized according to their minimum transmission costs;
determining an available transmission schedule of the target node and the one or more intermediate nodes, wherein the available transmission schedule comprises an operating schedule indicating the times of day that the target node and each intermediate node in the created destination alternative table are available to accept transmissions from other network nodes;
attempting transmission of the message to the target node as a function of the available transmission schedule of the target node;
if the transmission of the message to the target node fails, attempting transmission of the message to at least one intermediate node having the highest priority as identified in the created destination alternative table, where the at least one intermediate node is available to accept transmissions at the time of attempting transmission of the message according to the determined available transmission schedule of the target node and the one or more intermediate nodes; and
if the transmission of the message to the highest priority intermediate node fails, attempting transmission of the message to additional intermediate nodes of successively decreasing priority as identified in the created destination alternative table, said additional intermediate nodes being nodes which are available to accept transmissions at the time of attempting transmission of the message according to the determined available transmission schedule of the target node and the one or more intermediate nodes;
wherein the message is transmitted over a computer network from the current node to at least two target nodes, the method further comprising;
creating a minimum spanning tree for the network with the current node as a root;
determining a last node of divergence from the minimum spanning tree of at least two recipients residing on different nodes;
grouping recipients according to a last node of divergence; and
transmitting the message to the last node of divergence.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods are described which provide enhanced stability, increased predictability, reduced transmission costs, and which conserve bandwidth in routing messages over computer networks. The systems and methods further include providing improved transmission of messages wherein the messages are transmitted to nodes closest to a target delivery node. If delivery is possible to a target node, the message transmission stops at the point of failure in the network, wherein delivery to the target node is accomplished at a later time or the message is returned to the sender.
-
Citations
13 Claims
-
1. A computer-implemented method for transmitting a message over a computer network, said network having a current node, a target node, and one or more intermediate nodes connected to the network between the current node and the target node, the method comprising:
-
creating a destination alternative table of the intermediate nodes located on the network having transmission costs to the target node that are less than the transmission costs of the current node to the target node, wherein the intermediate nodes are prioritized according to their minimum transmission costs; determining an available transmission schedule of the target node and the one or more intermediate nodes, wherein the available transmission schedule comprises an operating schedule indicating the times of day that the target node and each intermediate node in the created destination alternative table are available to accept transmissions from other network nodes; attempting transmission of the message to the target node as a function of the available transmission schedule of the target node; if the transmission of the message to the target node fails, attempting transmission of the message to at least one intermediate node having the highest priority as identified in the created destination alternative table, where the at least one intermediate node is available to accept transmissions at the time of attempting transmission of the message according to the determined available transmission schedule of the target node and the one or more intermediate nodes; and if the transmission of the message to the highest priority intermediate node fails, attempting transmission of the message to additional intermediate nodes of successively decreasing priority as identified in the created destination alternative table, said additional intermediate nodes being nodes which are available to accept transmissions at the time of attempting transmission of the message according to the determined available transmission schedule of the target node and the one or more intermediate nodes; wherein the message is transmitted over a computer network from the current node to at least two target nodes, the method further comprising; creating a minimum spanning tree for the network with the current node as a root; determining a last node of divergence from the minimum spanning tree of at least two recipients residing on different nodes; grouping recipients according to a last node of divergence; and transmitting the message to the last node of divergence. - View Dependent Claims (2, 3, 4, 11)
-
-
5. A message communication system for transmitting a message, the message communication system having a current server, a target server, and one or more intermediate servers connected to a network between the current server and the target server on a message communication network, comprising:
-
a destination alternative table of the intermediate servers located on the network having transmission costs to the target server that are less than the transmission costs of the current server to the target server, wherein the intermediate servers are prioritized according to their minimum transmission costs; the current server configured to execute computer-executable instructions stored on a computer-readable storage media for; determining an available transmission schedule of the target server and the one or more intermediate servers, wherein the available transmission schedule comprises an operating schedule indicating the times of day that the target server and each intermediate server in the destination alternative table accept transmissions from other network servers; attempting transmission of a message to the target server as a function of the available transmission schedule of the target server; if the transmission of the message to the target server fails, attempting transmission of the message to at least one intermediate server having the highest priority as identified in the destination alternative table, where the at least one intermediate server is available to accept transmissions at the time of attempting transmission of the message according to the determined available transmission schedule of the target server and the one or more intermediate servers; if the attempt to transmit the message to the highest priority intermediate server fails, attempting transmission of the message to additional intermediate servers of successively decreasing priority as identified in the destination alternative table, said additional intermediate servers being nodes which are available to accept transmissions at the time of attempting transmission of the message according to the determined available transmission schedule of the target server and the one or more intermediate servers; and tracking the number of transmissions between servers for the message, wherein the number of transmissions exceeds a minimum threshold, delaying additional transmissions for a settling period, and wherein the number of transmissions exceeds a maximum threshold, returning the message as undeliverable. - View Dependent Claims (6, 7, 12)
-
-
8. One or more computer-readable storage media having computer-executable instructions for transmitting a message over a computer network, said network having a current node, a target node, and one or more intermediate nodes connected to the network between the current node and the target node, comprising:
-
instructions for creating a destination alternative table of the intermediate nodes on the network and determining the transmission costs from the intermediate nodes to the target node that are less than the transmission costs of the current node to the target node, and prioritizing the intermediate nodes according to their associated minimum transmission costs; instructions for maintaining a cache of intermediate nodes having failed connections occurring within a predetermined time period, wherein intermediate nodes are removed from the cache after the expiration of the predetermined time period; instructions for determining an available transmission schedules of the target node and the one or more intermediate nodes, wherein the available transmission schedule comprises an operating schedule indicating the times of day that the target node and each intermediate in the node accepts transmissions; instructions for attempting transmission of the message to the target node as a function of the cache of failed nodes and the available transmission schedule of the target node, wherein the available transmission schedule comprises an operating schedule indicating the times of day that the target node and each intermediate node in the created destination alternative table are available to accept transmissions from other network nodes, and if the transmission of the message to the target node fails, attempting transmission of the message to at least one additional intermediate node as a function of its priority as identified in the created destination alternative table, the cache of failed nodes, and the available transmission schedule of the at least one additional intermediate node, wherein the at least one additional intermediate node is available to accept transmissions at the time of attempting transmission of the message according to the determined available transmission schedule of the target node and the one or more intermediate nodes, and wherein the message is not transmitted to an intermediate node included in the cache of failed nodes; instructions for attempting transmission of the message to the intermediate node having the highest priority as identified in the created destination alternative table if the attempt to transmit the message to the target node fails; and instructions for attempting transmission of the message to additional intermediate nodes of successively decreasing priority as identified in the created destination alternative table if the attempt to transmit the message to the highest priority intermediate node fails; wherein the message is transmitted over a computer network from the current node to at least two target nodes, the computer-readable media further comprising; instructions for creating a minimum spanning tree for the network with the current node as a root; instructions for determining a last node of divergence from the minimum spanning tree of at least two recipients residing on different nodes; instructions for grouping recipients according to a last node of divergence; and instructions for transmitting the message to the last node of divergence. - View Dependent Claims (9, 10, 13)
-
Specification