Logical routing system
First Claim
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:
- registering with a logical routing layer a node identification function associated with the logical identifier, the node identification function being registered by an application when the application starts executing on the application node, the node identification function having a criteria declaration indicating parameters to be passed to the node identification function and having executable code for generating a physical identifier of the application node that corresponds to the logical identifier;
retrieving by the client node the registered node identification functionexecuting by the client node the executable code of the retrieved node identification function to generate the physical identifier for the logical identifier based on parameters passed to the retrieved node identification function according to the criteria declaration;
mapping the generated physical identifier to a network address of the application node;
sending the message to the network address of the application node; and
registering with the logical routing layer a new node identification function associated with the application node during execution of the application.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system for mapping logical identifiers to physical identifiers is provided. In one embodiment, a logical routing system allows each application, or more generally entity (e.g., user of an application), to register its logical identifier to physical identifier mapping when the application starts executing on a computer. To send a message to an application identified by a logical identifier, a client program uses the registered mapping to identify the physical identifier of the computer. If an application later starts executing on a different computer, then the application can register a different mapping.
40 Citations
54 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:
-
registering with a logical routing layer a node identification function associated with the logical identifier, the node identification function being registered by an application when the application starts executing on the application node, the node identification function having a criteria declaration indicating parameters to be passed to the node identification function and having executable code for generating a physical identifier of the application node that corresponds to the logical identifier; retrieving by the client node the registered node identification function executing by the client node the executable code of the retrieved node identification function to generate the physical identifier for the logical identifier based on parameters passed to the retrieved node identification function according to the criteria declaration; mapping the generated physical identifier to a network address of the application node; sending the message to the network address of the application node; and registering with the logical routing layer a new node identification function associated with the application node during execution of the application. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A logical routing system having a computing device with a central processing unit and memory, 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 components are stored in the memory; wherein the logical routing layer adapted to receive from an application a registration of a node identification function that is associated with a logical destination of the application, when the application starts execution on an application node, the node identification function having a criteria declaration indicating parameters to be passed to the node identification function and executable code for generating a node identifier of the application node at which the application executes; wherein the send logical message component of the logical routing layer of an originating node is adapted to; receive a logical destination and a message from a client of the application, identify a node identifier of a destination node associated with the logical destination by being adapted to; use the send message component of the physical routing layer to send a search message to a peer computing device and receive from the peer computing device the node identification function associated with the logical destination and execute the executable code of the received node identification function to generate the node identifier based on parameters passed to the received node identification function according to the criteria declaration, and provide the node identifier and the message to the send message component of the physical routing layer to send the message to the node identified by the provided node identifier wherein the send message component of the physical routing layer of the originating node is adapted to; receive the provided node identifier of a destination node and the message, identify a network address corresponding to the provided node identifier by being adapted to; send a search message to a peer computing device and receive from the peer computing device an indication of the network address of the provided node identifier, and send the message to the identified network address; 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; 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; and wherein the logical layer is further adapted to receive from the application a registration of another node identification function associated with the application node during execution of the application. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27)
-
-
28. A logical routing system having a computing device with a central processing unit and a memory, comprising:
-
a send logical message component of a logical routing layer of an originating computing device that is adapted to; receive a logical destination and a message from a client of an application, identify a node identifier of a destination node associated with the logical destination by being adapted to; send a logical name search message to a peer computing device to retrieve a node identification function associated with the logical destination, the node identification function being registered by an application when the application starts executing on the destination application node, the node identification function having a criteria declaration indicating parameters to be passed to the node identification function and having executable code for generating a node identifier of the destination application node that corresponds to the logical destination, and execute the executable code of the retrieved node identification function to generate the node identifier of the destination node based on parameters passed to the retrieved node identification function according to the criteria declaration, and send to a peer computing device the message addressed to the node identifier by being adapted to use a physical routing layer that maps the node identifier to a network address and sends the message addressed to the network address wherein the logical routing layer is adapted to receive from an application a registration of a node identification function to be associated with the logical destination, the node identification function being adapted to provide a node identifier of one of a plurality of destination nodes to which messages addressed to the logical destination are to be sent; a receive logical name search component of the logical routing layer that is adapted to upon receiving from a peer computing device a logical name search message that identifies a logical destination, determine whether the node identification function associated with the logical destination is stored locally at the computing device; upon determining that the node identification function is stored locally at the computing device, send to the originating computing device using the physical routing layer a response to the logical name search message that identifies the node identification function; and upon determining that the node identification function is not stored locally at the computing device, forward to a peer computing device using the physical routing layer the logical name search message; and a receive logical message component of the logical routing layer that is adapted to upon receiving from a peer computing device a message provided by the physical routing layer, determine whether the node identifier to which the received message is addressed is the node identifier of the computing device; upon determining that the node identifier to which the received message is addressed is not the node identifier of the computing device, send the received message to the node identifier using the physical routing layer; and upon determining that the node identifier to which the received message is addressed is the node identifier of the computing device, provide the received message to the application wherein the logical routing layer is further adapted to receive from the application a registration of another node identification function associated with the application node during execution of the application and wherein the components are stored in the memory. - View Dependent Claims (29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42)
-
-
43. A routing system distributed among nodes, each node having a network address and a computing device with a central processing unit and a memory, comprising:
-
a physical routing layer implemented at each node, the physical routing layer for transmitting physical messages between nodes based on physical identifiers of nodes, the physical routing layer for mapping physical identifiers to network addresses; and a logical routing layer implemented at nodes designated as logical routing nodes, the logical routing layer for providing node identification functions associated with logical identifiers of applications that provide physical identifiers of nodes based on registrations of the node identification functions by applications, the node identification functions being registered by applications when the applications start executing on application nodes, each node identification function having a criteria declaration indicating parameters to be passed to the node identification function and having executable code for generating a physical identifier of a destination node that corresponds to the logical identifier; receiving from a client of a destination application a logical message to be sent to the destination application as identified by a destination logical identifier, identifying a destination physical identifier for the logical identifiers by being adapted to search peer nodes of the logical routing layer to retrieve the node identification function associated with the logical identifier, and execute the executable code of the retrieved node identification function to generate the destination physical identifier of the destination node based on parameters passed to the retrieved node identification function according to the criteria declaration of the retrieved node identification function, and transmitting via the physical routing layer the logical message to the node identified by the destination physical identifier for delivery to the application identified by the destination logical identifier wherein the logical routing layer is further adapted to receive from the application a registration of a new node identification function associated with the destination node during execution of the application and wherein the implementation of the layers is stored in the memory of the nodes. - View Dependent Claims (44, 45, 46, 47)
-
-
48. A routing system distributed among nodes, each node having an IP address and a computing device with a central processing unit and a memory, comprising:
-
a physical routing layer implemented at each node, the physical routing layer for transmitting physical messages between nodes based on domain names of nodes, the physical routing layer for mapping domain names to IP addresses; and a logical routing layer implemented at nodes designated as logical routing nodes, the logical routing layer for providing mappings of logical identifiers of applications to domain names of nodes via a node identification function that is registered by an application associated with a logical identifier when the application starts executing at an application node and that the application dynamically changes during execution, the node identification function being registered by an application when the application starts executing on the application node, the node identification function having a criteria declaration indicating parameters to be passed to the node identification function and having executable code for generating a destination domain name of the application node that corresponds to the logical destination, receiving from a client of a destination application a logical message to be sent to the destination application as identified by a destination logical identifier, identifying a destination domain name by being adapted to search among the logical routing nodes to retrieve the node identification function associated with the logical identifier and upon receiving the node identification function, execute the executable code of the node identification function to generated, based on parameters passed to the retrieved node identification function according to the criteria declaration, the destination domain name of a destination node executing the destination application, and transmitting via the physical routing layer the logical message to the node identified by the destination domain name for delivery to the application identified by the destination logical identifier wherein the implementation of the layers is stored in the memory of the nodes, wherein a logical message includes content and a logical identifier and the node identification function identifies a domain name based on at least in part on the content of the logical message, and wherein the logical routing layer is further adapted to receive from the destination application a registration of a new node identification function associated with the destination node during execution of the destination application.
-
-
49. A method in a computer network for sending a message from a client application executing at a client node to a remote application executing at a remote application node, the remote application being identified by a logical identifier that is known to the client application, the method comprising:
-
under control of the remote application, registering with a logical routing layer a node identification function for the logical identifier of the application, the node identification function being registered by the remote application when the remote application starts executing at the remote application node, the node identification function having a criteria declaration indicating parameters to be passed to the node identification function and having executable code for generating a physical identifier of the remote application node that corresponds to the logical identifier; under control of the client application, sending the message to the remote application by invoking at the client node a send logical message function of the logical routing layer of the client node passing the message and the logical identifier; under control of the send logical message function of the logical routing layer, resolving the passed logical identifier to a physical identifier registered by the remote application by sending a request to a peer node of the logical routing layer to retrieve the node identification function for the logical identifier, receiving a response to the request from the peer node that includes the node identification function, and executing the node identification function to generate a physical identifier for the logical identifier based on parameters passed to the node identification function according to the criteria declaration; and sending the message to the remote application by invoking at the client node a send message function of a physical routing layer passing the registered physical identifier; and under control of the send message function of the physical routing layer, sending the message to the remote application by using the physical routing layer to resolve the registered physical identifier to a network address and forwarding the message to the resolved network address, wherein the resolving of the logical identifier to the registered physical identifier is performed by the logical routing layer independently of the client application and the resolving of the registered physical identifier to the network address is performed by the physical routing independently of the logical routing layer, and registering with the logical routing layer a new node identification function associated with the remote application node during executing of the remote application. - View Dependent Claims (50, 51, 52, 53, 54)
-
Specification