Claims
- 1. A method in a client node for sending a message to an application node that corresponds to a logical identifier, the logical identifier being known to the client node, the method comprising:
computing a physical identifier for the logical identifier based on a node identification function for the logical identifier; and sending the message to an application node identified by the computed physical identifier.
- 2. The method of claim 1 including
receiving an update to the node identification function wherein messages to be sent after receiving the update are sent to an application node identified by the updated node identification function.
- 3. The method of claim 1 wherein when the application node receives the message, it computes a node identification function to determine whether the message should be forwarded to another application node.
- 4. The method of claim 1 wherein the computing computes physical identifiers of more than one node to which the message is to be sent.
- 5. The method of claim 1 wherein the node identification function is passed the message to be sent.
- 6. The method of claim 1 wherein the node identification function has an associated criteria declaration that indicates what is to be passed to the node identification function.
- 7. The method of claim 6 wherein the node identification function has an associated key function that maps criteria to a key.
- 8. The method of claim 7 wherein the key is used to identify the physical identifier.
- 9. The method of claim 1 wherein the node identification function has a data structure that maps a criteria to a physical identifier.
- 10. The method of claim 9 wherein the data structure is a tree structure.
- 11. The method of claim 1 wherein the node identification function is common to multiple logical identifiers with each logical identifier having a criteria declaration, a key function, and a mapping data structure.
- 12. The method of claim 1 wherein client node receives the node identification function from the application node.
- 13. The method of claim 1 wherein a mapping of logical identifiers to node identification functions are maintained at a server node.
- 14. The method of claim 1 wherein mappings of logical identifiers to node identification functions are maintained at a server node and distributed among the nodes.
- 15. The method of claim 1 wherein mappings of logical identifiers to node identification functions are distributed among the nodes.
- 16. A logical routing system comprising:
a physical routing layer with a send message component and a receive message component; and a logical routing layer with a send logical message component and a receive logical message component wherein the send logical message component of the logical routing layer of an originating node receives a logical destination and a message from a client of an application, identifies a node identifier of a destination node associated with logical destination, and provides the node identifier and the message to the send message component of the physical routing layer wherein the send message component of the physical routing layer of the originating node receives the provided node identifier of the destination node and a message, identifies a path from an originating node to the destination node, and sends the message to the destination node; wherein the receive message component of the physical routing layer of the destination node receives the message sent from the originating node and provides the received message to the receive logical message component of the logical routing layer; and wherein the receive logical message component of the logical routing layer of the destination node receives the provided message and provides the message to the application.
- 17. The logical routing system of claim 16 wherein the logical routing layer of the originating node includes a node identification function for the logical destination that computes the node identifier.
- 18. The logical routing system of claim 17 wherein the node identification function computes the node identifier based on content of the message.
- 19. The logical routing system of claim 17 wherein the node identification function is provided by the destination node.
- 20. The logical routing system of claim 17 wherein the node identification function is updated by the destination node.
- 21. The logical routing system of claim 17 wherein the node identification function computes multiple node identifiers.
- 22. The logical routing system of claim 17 wherein the send logical message component of the logical routing layer identifies a node identifier of a destination node by sending a search message to a peer node to determine whether the peer node can provide the node identifier.
- 23. The logical routing system of claim 17 wherein the send logical message component of the logical routing layer identifies a node identifier of a destination node by sending the destination node identifier to a server node that provides the node identifier.
- 24. The logical routing system of claim 16 wherein the send message component of the physical routing layer sends the message to the server node for forwarding on to the destination node.
- 25. The logical routing system of claim 24 wherein the server node stores the message until the destination node comes online.
- 26. The logical routing system of claim 16 wherein the receive logical message component of the logical routing layer determines whether the message should be forwarded to another node.
- 27. The logical routing system of claim 26 wherein the determining of whether the message should be forwarded to another node is based on a node identification function that computes a node identifier.
- 28. The logical routing system of claim 26 wherein the destination node and the originating node are operated by different organizations.
- 29. The logical routing system of claim 26 wherein the destination node and the other node are under the control of different organizations.
- 30. The logical routing system of claim 16 wherein the send message component of the physical routing layer sends the message to a network address associated with the destination node using a mapping of node identifier to network address.
- 31. The logical routing system of claim 30 wherein the network address includes an IP address.
- 32. The logical routing system of claim 16 wherein the send message component of the physical routing layer sends the message using TCP/IP protocol.
- 33. A logical routing system comprising:
a send logical message component of an originating node that receives a logical destination and a message from a client of an application, identifies a node identifier of a destination node associated with the logical destination, and sends the message to the node identified by the node identifier using a physical routing layer wherein the node identifier is identified by using the send logical message component to send a message to a logical mapping destination; and a receive logical message component of the destination node that receives the message provided by the physical routing layer and provides the message to the application.
- 34. The logical routing system of claim 33 wherein the logical routing layer of the originating node includes a node identification function for the logical destination that computes the node identifier.
- 35. The logical routing system of claim 34 wherein the node identification function computes the node identifier based on content of the message.
- 36. The logical routing system of claim 34 wherein the node identification function is provided by the destination node.
- 37. The logical routing system of claim 34 wherein the node identification function is updated by the destination node.
- 38. The logical routing system of claim 34 wherein the node identification function computes multiple node identifiers of nodes to which the message is to be sent.
- 39. The logical routing system of claim 33 wherein the logical mapping destination is centralized at a server node.
- 40. The logical routing system of claim 33 wherein the logical mapping destination is distributed across multiple server nodes.
- 41. The logical routing system of claim 33 wherein the physical routing layer sends the message to a server node for forwarding to the destination node.
- 42. The logical routing system of claim 41 wherein the server node stores the message until the destination node comes online.
- 43. The logical routing system of claim 33 wherein the receive logical message component determines whether the message should be forwarded to another node.
- 44. The logical routing system of claim 43 wherein the determining of whether the message should be forwarded to another node is based on a node identification function that computes a node identifier.
- 45. The logical routing system of claim 33 wherein the destination node and the other node are operated by different organizations.
- 46. The logical routing system of claim 33 wherein the destination node and the originating node are under the control of different organizations.
- 47. The logical routing system of claim 33 wherein the logical destination mappings are stored at a server node.
- 48. The logical routing system of claim 33 wherein the logical destination mappings are distributed among nodes.
- 49. A computer-readable medium containing instructions for controlling a computer system to send a message a logical destination, by a method comprising:
identifying a plurality of node identifiers corresponding to the logical destination; and sending the message to the nodes identified by the node identifiers.
- 50. The computer-readable medium of claim 49 wherein when a node receives the message, it uses a node identification function to determine whether the message should be forwarded to another node.
- 51. The computer-readable medium of claim 50 wherein the node that forwards the message performs a load balancing function for the logical destination.
- 52. The computer-readable medium of claim 49 wherein the identifying includes using a node identifier function to identify the plurality of node identifiers.
- 53. The computer-readable medium of claim 52 wherein the node identification function is passed the message to be sent.
- 54. The computer-readable medium of claim 52 wherein the node identification function has associated criteria that indicate what is to be passed to the node identification function.
- 55. The computer-readable medium of claim 54 wherein the node identification function has an associated key function that maps criteria to a key.
- 56. The computer-readable medium of claim 55 wherein the key is used to identify the node identifier.
- 57. The computer-readable medium of claim 52 wherein the node identification function has a data structure that maps criteria to a node identifier.
- 58. The computer-readable medium of claim 57 wherein the data structure is a tree structure.
- 59. The computer-readable medium of claim 52 wherein the node identification function is common to multiple logical destinations with each logical destination having criteria, a key function and a mapping data structure, and the node identification function generates a key using the criteria and key function and identifies a node identifier from the mapping data structure using the generated key.
- 60. The computer-readable medium of claim 49 wherein mappings of logical destinations to node identifiers are stored in a central location.
- 61. The computer-readable medium of claim 49 wherein mappings of logical destinations to node identifiers are stored in distributed locations.
- 62. A logical routing system comprising:
means for registering node identification functions for logical destinations, the node identification functions for mapping a logical destination to a node identifier; means for identifying a destination node identifier from a logical destination using a node identification function for the logical destination; means for sending a message to the node identified by the destination node identifier.
- 63. The logical routing system of claim 62 wherein a logical destination is associated with an application and the application registers a node identification function for the associated logical destination.
- 64. The logical routing system of claim 62 wherein the node identification function computes the destination node identifier based on content of the message.
- 65. The logical routing system of claim 62 wherein the node identification function is registered by the destination node.
- 66. The logical routing system of claim 62 wherein the node identification function is updated by the destination node.
- 67. The logical routing system of claim 62 wherein the node identification function computes multiple node identifiers.
- 68. The logical routing system of claim 62 wherein the logical mapping destination is centralized at a server node.
- 69. The logical routing system of claim 62 wherein means for identifying the destination node identifier includes a mapping of logical destinations to destination node identifiers that is distributed across multiple server nodes.
- 70. The logical routing system of claim 62 wherein the destination node and a node that originates a message are operated by different organizations.
- 71. The logical routing system of claim 62 wherein the destination node and a node that originates a message are under the control of different organizations.
- 72. The logical routing system of claim 62 wherein the mappings of logical destinations to node identifiers are stored in a central location.
- 73. The logical routing system of claim 62 wherein the mappings of logical destinations to node identifiers are stored in distributed locations.
- 74. A method in a computer system for registering a mapping from a logical destination associated with an application to a node identifier of a node, the method comprising sending to a logical routing map an indication of the logical destination and an indication of the node identifier so that the logical routing map provides the sent node identifier to a client that requests the node identifier for the logical destination.
- 75. The method of claim 74 wherein the application sends to the logical routing map a node identification function that maps the logical destination to the node identifier.
- 76. The method of claim 74 wherein the application sends to the logical routine map a key function, a criteria declaration and a routing table.
- 77. The method of claim 74 wherein the node is the node upon which the application is executing.
- 78. The method of claim 74 wherein the logical routing map is identified by a logical destination.
- 79. The method of claim 74 wherein the application sends indications of multiple node identifiers to the logical routing map.
- 80. The method of claim 74 wherein the application sends an update indicating a new node identifier for the logical destination.
- 81. The method of claim 74 including sending an indication to disassociate the node identifier from the logical destination.
- 82. The method of claim 74 wherein the logical routing map is centralized.
- 83. The method of claim 74 wherein the logical routing map is distributed.
- 84. The method of claim 74 wherein the logical routing map is a hybrid of distributed and centralized.
- 85. The method of claim 74 wherein a client retrieves from the logical routing map the node identifier for a logical destination.
- 86. The method of claim 85 wherein the client caches a mapping of the logical destination to the node identifier.
CROSS-REFERENCE TO RELATED APPLICATION(S)
[0001] This application is a continuation of U.S. patent application Ser. No. 10/076,214 entitled “LOGICAL ROUTING SYSTEM” filed Feb. 12, 2002, which application claims the benefits of U.S. application Ser. No. 10/021,265 entitled “APPLICATION PLATFORM” filed Nov. 16, 2001 and U.S. Provisional Application No. 60/268,386 entitled “LOGICAL ROUTING” filed Feb. 12, 2001, which are hereby incorporated by reference.
Continuations (1)
|
Number |
Date |
Country |
Parent |
10076214 |
Feb 2002 |
US |
Child |
10278761 |
Oct 2002 |
US |