Routing of network messages
First Claim
Patent Images
1. A method for routing an electronic message from a sender to a receiver, comprising:
- generating, by an application-layer program executing on a computing device having a processor and a memory, an electronic message including a header portion and a data portion, said header portion comprising a requested, complete forward message path to be taken by the message from a sender to a receiver, the forward message path being specified by the application-layer program and including one or more application-layer intermediaries; and
sending the message to a first application-layer intermediary of the forward message path for processing by the first application-layer intermediary and subsequent delivery to one of a second application-layer intermediary when present in the forward message path or to the receiver when no second application-layer intermediary is present in the forward message path, the message being sent to the first intermediary bound to a first underlying protocol and the subsequent delivery by the first intermediary employing a second underlying protocol that is different than the first protocol.
2 Assignments
0 Petitions
Accused Products
Abstract
A routing protocol is provided for exchanging messages between an initial sender and an ultimate receiver, potentially via a set of intermediaries. The routing protocol provides an optional reverse message path that enables two-way message exchange patterns. The routing protocol can be expressed as a header entry within a message envelope, is independent of the underlying protocol, and can be generated at the application layer of a protocol stack. The routing protocol may allow each intermediary to process the message and dynamically alter the message path en route to the intended recipient.
-
Citations
54 Claims
-
1. A method for routing an electronic message from a sender to a receiver, comprising:
-
generating, by an application-layer program executing on a computing device having a processor and a memory, an electronic message including a header portion and a data portion, said header portion comprising a requested, complete forward message path to be taken by the message from a sender to a receiver, the forward message path being specified by the application-layer program and including one or more application-layer intermediaries; and sending the message to a first application-layer intermediary of the forward message path for processing by the first application-layer intermediary and subsequent delivery to one of a second application-layer intermediary when present in the forward message path or to the receiver when no second application-layer intermediary is present in the forward message path, the message being sent to the first intermediary bound to a first underlying protocol and the subsequent delivery by the first intermediary employing a second underlying protocol that is different than the first protocol. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for routing an electronic message from a sender to a receiver, comprising:
-
generating, by an application-layer application executing on a computing device having a processor and a memory, an electronic message including a header portion and a data portion, said header portion comprising a forward message path to be taken by the message from a sender to a receiver, such that the forward message path in the header portion designates a complete list of one or more intermediaries via which the message is requested to travel from the sender to the receiver, the list of intermediaries being amendable by the one or more intermediaries as the message travels along the forward message path, and the forward message path being specified by the application-layer application; and sending the message to a first intermediary of the forward message path for processing by the first intermediary and subsequent delivery to one of a second intermediary when present or the receiver when no second intermediary is present in the forward message path of the header portion of the message, the message being sent to the first intermediary bound to a first underlying protocol and the subsequent delivery by the first intermediary employing a second underlying protocol that is different than the first protocol, wherein said generating the header portion further includes providing an indication for the intermediaries to dynamically build a reverse message path as the message traverses the forward message path in such a manner that, when the message is received at the receiver, the reverse message path designates a complete path from the receiver to the sender via the one or more intermediaries. - View Dependent Claims (9, 10, 11)
-
-
12. In a network router that routes an application-layer program generated message having an ordered forward message path that is generated by the application-layer program and includes one or more application-layer intermediaries between a sender and a receiver, a computer implemented method for routing the message, the method comprising:
-
(a) receiving the message at a first application-layer intermediary corresponding to an application-layer intermediary at the beginning of the ordered forward message path generated by the application-layer program, the message being bound to a first underlying protocol; (b) processing the message by the first application-layer intermediary, wherein processing includes removing the first application-layer intermediary from the beginning of the ordered forward message path; (c) when the ordered forward message path is not empty, forwarding the message to a second application-layer intermediary corresponding to the beginning of the ordered forward message path subsequent to step (b);
or(d) when the forward message path list is empty, forwarding the message to the receiver, wherein the ordered forward message path indicates a complete forward message path from the sender to the receiver, and wherein the ordered forward message path is amendable by the first and second application-layer intermediaries to insert or remove application-layer intermediaries from the ordered forward message path; and (e) adding the application-layer intermediary removed from the forward message path in step (b) to the beginning of a reverse message path that is dynamically generated by the one or more application-layer intermediaries as the message is processed thereby on the forward message path, the reverse message path including a complete ordered reverse message path from a current location of the message on the forward message path back to the application-layer program and sender, wherein in step (c) or (d) the message is sent bound to a second underlying protocol different from said first transport protocol. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27)
-
-
28. A network router, comprising:
-
a processor; a network interface for sending and receiving network messages; and memory storing computer readable instructions that, when executed by the processor, perform a method comprising; a. receiving a message having an application-level generated message path stored in a header thereof, the message path comprising a sender, a receiver, and an ordered set of a plurality of application-layer intermediaries, wherein a first application-layer intermediary of the ordered set corresponds to the network router, the first application-layer intermediary being at any position in the ordered set of application-layer intermediaries, and the message being bound to a first underlying protocol; b. removing the first application-layer intermediary from the ordered set of application-layer intermediaries; and c. when the ordered set is not empty, sending the message using a second underlying protocol to the next application-layer intermediary of the ordered set, otherwise, sending the message to the receiver, the second underlying protocol being different than the first underlying protocol. - View Dependent Claims (29, 30, 31, 32, 33, 34, 35, 36, 37)
-
-
38. A network router, comprising:
-
a processor; a network interface for sending and receiving network messages; memory storing computer readable instructions that, when executed by the processor, perform a method comprising; a. receiving a message having an application-level generated message path stored in a header thereof, the message path comprising a sender, a receiver, and an ordered set of a plurality of application-layer intermediaries, wherein the first application-layer intermediary of the ordered set corresponds to the network router, the first application-layer intermediary being at any position in the ordered set of application-layer intermediaries, and the message being bound to a first underlying protocol; b. tracking the first application-layer intermediary from the ordered set of intermediaries; and c. when the ordered set is not empty, sending the message using a second underlying protocol to the next application-layer intermediary of the ordered set, otherwise, sending the message to the receiver, the second underlying protocol being different than the first underlying protocol.
-
-
39. A computer readable storage device having stored thereon a data structure created by an application-layer program, comprising:
-
a first data field containing data representing a receiver of a message, the receiver including a processor for processing the data structure; a second data field containing data representing a sender of the message; a third data field containing data representing a forward message path through which the message is routed from the sender to the receiver, said forward message path defining a plurality of application-layer intermediaries through which the message must pass as the message is routed from the sender to the receiver, each of the one or more application-layer intermediaries including a processor for processing the data structure, at least one of the plurality of application-layer intermediaries receiving the message bound to a first underlying protocol and sending the message bound to a second underlying protocol, the second protocol being different than the first; and a fourth data field containing data representing a reverse message path through which a return message associated with the message is routed to the sender, said reverse message path being dynamically generated by the application-layer intermediaries along the forward message path, wherein said data structure causes the processors in the at least one of the receiver and the plurality of application-layer intermediaries to route the message according to the forward message path. - View Dependent Claims (40, 41, 42, 43, 44, 45, 46, 47, 48)
-
-
49. A method for routing a network message, comprising an application-layer application generating a requested, complete ordered routing path from a sender to a receiver comprising at least one application-layer intermediary, and forwarding the message to the first application-layer intermediary in the ordered routing path, wherein forwarding the message to the first application-layer intermediary and any subsequent intermediaries or a receiver is governed by the routing path generated by the application-layer application and not a network-layer application, and wherein at least one of the at least one application-layer intermediaries receives the message bound to a first underlying protocol and sends the message bound to a second underlying protocol, the second protocol being different than the first.
-
50. In a forward message path governed by a set of rules from an initial sender to an ultimate receiver, a method for enabling two-way message exchange patterns comprising:
-
sending a message along the forward message path; and dynamically building a reverse path governed by substantially the same set of rules as the forward message path and adding an indication of the reverse path to a header portion of the message, wherein the header portion of the message is generated by an application-layer program and describes a requested complete forward message path by designating a requested ordered group of intermediaries via which the message is to travel from the sender to the receiver, the ordered group of intermediaries being amendable by one or more of the intermediaries adding one or more additional intermediaries to the ordered group, wherein, at least one of the intermediaries receives the message bound to a first underlying protocol and sends the message bound to a second underlying protocol, the second protocol being different than the first, and wherein the reverse path is dynamically built by each of the intermediaries while the message traverses the forward message path in such a manner that, when the message is received by the ultimate receiver, the reverse path designates a path from the receiver to the sender via the intermediaries and the one or more additional intermediaries.
-
-
51. A method for specifying a two way message path, comprising:
-
a. at an application layer, inserting at least one forward message path application-layer intermediary into a message envelope, the at least one application-layer intermediary receiving the message bound to a first underlying protocol and sending the message bound to a second underlying protocol, the second protocol being different than the first; and b. when requested by an initial sender, each of said at least one forward message path application-layer intermediary inserting a reverse message path application-layer intermediary into the message envelope before sending a message to a next application-layer intermediary or to an ultimate receiver of the message as indicated by a forward message path. - View Dependent Claims (52)
-
-
53. One or more computer-readable storage devices having a data message header embodied thereon in which an application-layer application specifies a requested, complete route having a plurality of functional application-layer intermediaries prior to a final destination of the message, the data message header comprising:
-
a. an identifier that indicates a purpose of a header comprises routing; b. an identifier identifying a final known destination; c. a plurality of first identifiers identifying an equal number of first application-layer intermediaries on a forward message path through which the message must travel between a sending node and the final destination, at least one application-layer intermediary receiving the message bound to a first underlying protocol and sending the message bound to a second underlying protocol, the second protocol being different than the first, and d. a plurality of second identifiers identifying an equal plurality of second application-layer intermediaries through which a return message associated with the message must travel on a reverse message path to the sending node, each of the plurality of second identifiers being provided by a respective one of the first application-layer intermediaries during transmission of the data message along the forward message path.
-
-
54. One or more computer-readable storage devices having computer-executable instructions embodied thereon that, when executed, perform a method for routing an electronic message from a sender to a receiver, the method comprising:
-
generating by a sender comprising an application-layer application executing on a first computing device having a processor, an electronic message including a header portion and a data portion, said header portion comprising a complete forward message path to be taken by the message from the sender to a receiver, the forward message path including a plurality of application-layer intermediaries, the complete forward message path being alterable by one or more of the application-layer intermediaries during the transmission of the electronic message to include one or more additional application-layer intermediaries, and the complete forward message path including at least one of the plurality of application-layer intermediaries that receives the message bound to a first underlying protocol and sends the message bound to a second underlying protocol, the second protocol being different than the first; and sending the message to a first application-layer intermediary of the forward message path for processing by the first application-layer intermediary and subsequent delivery to a second application-layer intermediary, the header portion instructing the second application-layer intermediary to process and subsequently deliver the message to a third application-layer intermediary, when present, or to the receiver when no third application-layer intermediary is present, wherein processing by the first and second application-layer intermediaries includes providing substantive services including one or more of annotation services, collaboration services, subscription management services, privacy enforcement services, and caching services.
-
Specification