Claims
- 1. A method for routing an electronic message from a sender to a receiver, comprising:
generating 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, the forward message path including one or more intermediaries; 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.
- 2. The method of claim 1 further comprising the step of binding the message to an arbitrary transport protocol.
- 3. The method of claim 2, wherein the transport protocol comprises TCP.
- 4. The method of claim 2, wherein the transport protocol comprises UDP.
- 5. The method of claim 2, wherein the transport protocol comprises HTTP.
- 6. The method of claim 2, wherein the transport protocol comprises JRMP.
- 7. The method of claim 2, wherein the transport protocol comprises SMTP.
- 8. The method of claim 1, wherein said generating the header portion further includes providing an indication to dynamically build a reverse message path as the message traverses the forward message path.
- 9. The method of claim 1, wherein the message comprises a SOAP message.
- 10. The method of claim 1, wherein the message comprises an XML message.
- 11. The method of claim 8, wherein the indication comprises an empty reverse message path.
- 12. In a network router that routes an application generated message having an ordered forward message path including one or more intermediaries between a sender and a receiver, a computer implemented method for routing the message, comprising:
(a) receiving the message at a first intermediary corresponding to an intermediary at the beginning of the ordered forward message path; (b) processing the message; (c) when the ordered forward message path is not empty, forwarding the message to a second intermediary corresponding to the beginning of the ordered forward message path subsequent to step (b); and (d) when the forward message path list is empty, forwarding the message to the receiver.
- 13. The method of claim 12, further comprising the step of (e) inserting an additional intermediary into the ordered forward message path.
- 14. The method of claim 12, wherein the processing step includes removing the first intermediary from the beginning of the ordered forward message path.
- 15. The method of claim 13, wherein step (e) inserts the additional intermediary at the beginning of the ordered forward message path.
- 16. The method of claim 12, wherein step (b) further includes providing a value-added service to the message.
- 17. The method of claim 16, wherein the value-added service comprises an annotation service.
- 18. The method of claim 16 wherein the value-added service comprises a collaboration service.
- 19. The method of claim 16, wherein the value-added service comprises a subscription management service.
- 20. The method of claim 16, wherein the value-added service comprises a privacy enforcement service.
- 21. The method of claim 16, wherein the value-added service comprises a caching service.
- 22. The method of claim 16, wherein the value-added service comprises an authentication service.
- 23. The method of claim 12, wherein step (b) further includes traversing one of a firewall, a NAT, or a proxy service.
- 24. The method of claim 14, wherein the application generated message further includes an ordered reverse message path, further comprising (e) adding the intermediary removed from the forward message path in step (b) to the beginning of the reverse message path.
- 25. The method of claim 12, wherein in step (a) the message is received bound to a first underlying protocol, and
wherein in step (c) or (d) the message is sent bound to a second underlying protocol different from said first transport protocol.
- 26. The method of claim 25, wherein the first underlying protocol comprises TCP and the second underlying protocol comprises UDP.
- 27. The method of claim 25, wherein the first underlying protocol comprises UDP and the second underlying protocol comprises TCP.
- 28. The method of claim 25, wherein the first underlying protocol comprises TCP and the second underlying protocol comprises SMTP.
- 29. The method of claim 24, further comprising, prior to step (e), sending a fault message back to the sender via the reverse message path.
- 30. The method of claim 24, further comprising forwarding an acknowledgment message from the receiver back to the sender on the dynamically generated reverse message path.
- 31. 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, the message path comprising a sender, a receiver, and an ordered set of at least one intermediary, wherein the first intermediary of the ordered set corresponds to the network router; (b) removing the first intermediary from the ordered set of intermediaries; and (c) when the ordered set is not empty, sending the message to the next intermediary of the ordered set, otherwise, sending the message to the receiver.
- 32. The network router of claim 31, wherein memory further comprises an application program that, when executed, modifies the message path within the message.
- 33. The network router of claim 32, wherein the application program modifies the message path by inserting a new intermediary into the set of intermediaries.
- 34. The network router of claim 31, wherein memory further comprises an application program that, when executed, performs a value-added service based on the message.
- 35. The network router of claim 34, wherein the value-added service comprises a post office service.
- 36. The network router of claim 34, wherein the value-added service comprises an authentication service.
- 37. The network router of claim 34, wherein the value-added service comprises an encryption service.
- 38. The network router of claim 34, wherein the value-added service comprises a collaboration service.
- 39. The network router of claim 34, wherein the value-added service comprises a caching service.
- 40. The network router of claim 34, wherein the value-added service comprises one of an annotation service, a proxy service, a NAT, or a firewall.
- 41. 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, the message path comprising a sender, a receiver, and an ordered set of at least one intermediary, wherein the first intermediary of the ordered set corresponds to the network router; (b) tracking the first intermediary from the ordered set of intermediaries; and (c) when the ordered set is not empty, sending the message to the next intermediary of the ordered set, otherwise, sending the message to the receiver.
- 42. A computer readable medium 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; 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.
- 43. The computer readable medium of claim 42, further comprising a fourth data field encapsulated by the third data field, the fourth data field specifying an intermediary on the forward message path.
- 44. The computer readable medium of claim 42 further comprising a fourth data field containing data representing a reverse message path.
- 45. The computer readable medium of claim 44 further comprising a fifth data field encapsulated by the fourth data field, the fifth data field specifying an intermediary on the reverse message path.
- 46. The computer readable medium of claim 42 further comprising a fourth data field containing data indicating that a relationship exists between the message and a second message.
- 47. The computer readable medium of claim 42, wherein said first, second and third data structures are stored in a header of the message.
- 48. The computer readable medium of claim 42, wherein the first data field comprises a TO element, the second data field comprises a FROM element, and the third data field comprises a FWD element.
- 49. The computer readable medium of claim 42, wherein the first data field comprises a VIA element, the second data field comprises a VIA element, and the third data field comprises a VIA element.
- 50. The computer readable medium of claim 43, wherein the fourth data field comprises a VIA element.
- 51. The computer readable medium of claim 46, wherein the fourth data field comprises a RELATESTO element.
- 52. The computer readable medium of claim 44, wherein the fourth data field comprises a REV element.
- 53. The computer readable medium of claim 45, wherein the fifth data field comprises a VIA element.
- 54. A method for routing a network message, comprising a network application generating an ordered routing path comprising at least one intermediary, and forwarding the message to the first intermediary in the ordered routing path.
- 55. 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.
- 56. A method for specifying a two way message path, comprising:
(a) at an application layer, inserting at least one forward message path intermediary into a message envelope; and (b) when requested by an initial sender, each of said at least one forward message path intermediary inserting a reverse message path intermediary into the message envelope.
- 57. The method of claim 56, further comprising a specific intermediary inserting at least one additional intermediary into the message envelope.
- 58. A data message header for an application to specify a route having at least one functional intermediary prior to a final destination of the message, comprising:
(a) an identifier that indicates a purpose of a header comprises routing; (b) an identifier identifying a final known destination; and (c) an identifier identifying at least one intermediary between a sending node and the final destination.
- 59. A computer readable medium storing a data structure enabling selective encryption of routing information, comprising a plurality of routing elements, each indicating an intermediary in a message path,
wherein the indication in at least one of the plurality of ordered routing elements is encrypted, and wherein the at least one routing element further comprises an encrypted identifier corresponding to a predecessor intermediary in the message path to the indicated intermediary.
- 60. The computer readable medium of claim 59, wherein the encrypted identifier corresponding to a predecessor intermediary comprises a decryption key.
- 61. The computer readable medium of claim 59, wherein the encrypted identifier corresponding to a predecessor intermediary comprises an index.
- 62. The computer readable medium of claim 59, wherein the encrypted identifier corresponding to a predecessor intermediary comprises a hash.
- 63. The computer readable medium of claim 59, wherein the encrypted identifier corresponding to a predecessor intermediary comprises implied by the sender.
- 64. The computer readable medium of claim 59, wherein the encrypted identifier corresponding to a predecessor intermediary comprises a certificate.
- 65. The computer readable medium of claim 59, wherein the predecessor intermediary is the immediate predecessor intermediary to the indicated intermediary.
- 66. The computer readable medium of claim 59, wherein the plurality of ordered routing elements are nested.
- 67. The computer readable medium of claim 59, wherein the plurality of ordered routing elements are non-nested.
- 68. The computer readable medium of claim 59, wherein the at least one routing element further comprises a second encrypted identifier corresponding to a second intermediary in the message path to the indicated intermediary.
- 69. A method for routing an electronic message from a sender to a receiver, comprising:
generating 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, the forward message path including zero or more intermediaries; sending the message to a first intermediary of the forward message path, when present, 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.
Parent Case Info
[0001] This application claims priority to provisional U.S. Application Ser. Nos.: 60/329,796 filed Oct. 16, 2001, 60/346,370 filed Oct. 19, 2001, and 60/371,155 filed on Apr. 10, 2002.
Provisional Applications (3)
|
Number |
Date |
Country |
|
60329796 |
Oct 2001 |
US |
|
60346370 |
Oct 2001 |
US |
|
60371155 |
Apr 2002 |
US |