IP Library Granted Patent US 7,406,535
Granted Patent B2
US 7,406,535 · App. 10/326,683 · Granted Jul 29, 2008

Role-based message addressing for a computer network

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,406,535
App. No.
10/326,683
Granted
Jul 29, 2008
Kind
B2
Abstract

Various embodiments of a system and method related to location-independent message addressing for a computer network are disclosed. According to one embodiment, a plurality of nodes, e.g., computer systems, may be connected to a network. The plurality of nodes may include a first node which is operable to send a message addressed using a “role”. The role may be associated with one or more other nodes coupled to the network. The message may be sent to each of the one or more nodes with which the role is associated without specifying locations of the one or more nodes. For example, the role may have an associated name, and the message may be addressed using the role name.

Claims (75)

1. A method for sending a message in a peer-to-peer network including a plurality of peer nodes, the method comprising:

instantiating a first instance of a role on a first peer node in the peer-to-peer network;

instantiating a second instance of the role on a second peer node in the peer-to-peer network;

wherein the role represents a particular address;

storing routing information on each respective peer node of at least a subset of the plurality of peer nodes in the peer-to-peer network, wherein the routing information stored on each of the respective peer nodes maps the role to one or more links over which the respective peer node should propagate messages addressed to the role;

sending a first message addressed to the role, wherein the first message does not identify the first peer node and the second peer node as destination nodes for the first message, wherein sending the first message comprises sending the first message to the first instance of the role on the first peer node and the second instance of the role on the second peer node by propagating the first message from an initiating peer node through one or more respective peer nodes in the at least a subset of the plurality of peer nodes, wherein each of the one or more respective peer nodes uses the routing information stored on the respective peer node to determine the one or more links over which to propagate the first message;

wherein the role has a name; and

wherein the first message is addressed to the name of the role.

2. The method of claim 1 , wherein after said sending the first message, the method further comprises:

removing the first instance of the role on the first peer node;

instantiating a third instance of the role on a third peer node in the peer-to-peer network; and

changing the routing information stored on the one or more of the respective peer nodes in the at least a subset of the plurality of peer nodes so that a subsequent message addressed to the role is sent from the initiating peer node to the second instance of the role on the second peer node and the third instance of the role on the third peer node.

3. The method of claim 2 ,

wherein the subsequent message is addressed to the role in an identical manner as the first message.

4. The method of claim 1 ,

wherein the first message comprises a request by the initiating peer node to instantiate an instance of the role;

wherein the method further comprises:

in response to the first message, the first peer node returning a reply message granting permission to instantiate the role; and

the initiating peer node instantiating a third instance of the role in response to the reply message.

5. The method of claim 4 , further comprising:

the first peer node removing the first instance of the role in response to the first message.

6. The method of claim 1 , further comprising:

instantiating a plurality of other instances of the role on peer nodes in the peer-to-peer network other than the first peer node and the second peer node so that there is a total of N instances of the role, where N is an integer greater than 2;

wherein the initiating peer node requests that the first message be delivered to a minimum number M of instances of the role, wherein M is an integer greater than 2 and less than N;

wherein said sending the first message further comprises sending the first message to at least M−2 other instances of the role on other peer nodes in addition to the first instance of the role on the first peer node and the second instance of the role on the second peer node.

7. A computer-readable memory medium comprising program instructions executable to implement a method comprising:

instantiating a first instance of a role on a first peer node in a peer-to-peer network, wherein the peer-to-peer network includes a plurality of peer nodes;

instantiating a second instance of the role on a second peer node in the peer-to-peer network;

wherein the role represents a particular address:

storing routing information on each respective peer node of at least a subset of the plurality of peer nodes in the peer-to-peer network, wherein the routing information stored on each of the respective peer nodes maps the role to one or more links over which the respective peer node should propagate messages addressed to the role;

sending a first message addressed to the role, wherein the first message does not identify the first peer node and the second peer node as destination nodes for the first message, wherein sending the first message comprises sending the first message to the first instance of the role on the first peer node and the second instance of the role on the second peer node by propagating the first message from an initiating peer node through one or more respective peer nodes in the at least a subset of the plurality of peer nodes, wherein each of the one or more respective peer nodes uses the routing information stored on the respective peer node to determine the one or more links over which to propagate the first message;

wherein the role has a name; and

wherein the first message is addressed to the name of the role.

8. The computer-readable memory medium of claim 7 , wherein after said sending the first message, the method implemented by the program instructions further comprises:

removing the first instance of the role on the first peer node;

instantiating a third instance of the role on a third peer node in the peer-to-peer network; and

changing the routing information stored on one or more of the peer nodes in the at least a subset of the peer nodes so that a subsequent message addressed to the role is sent from the initiating peer node to the second instance of the role on the second peer node and the third instance of the role on the third peer node.

9. The computer-readable memory medium of claim 8 ,

wherein the subsequent message is addressed to the role in an identical manner as the first message.

10. The computer-readable memory medium of claim 7 ,

wherein the first message comprises a request by the initiating peer node to instantiate an instance of the role;

wherein the method implemented by the program instructions further comprises:

in response to the first message, the first peer node returning a reply message granting permission to instantiate the role; and

the initiating peer node instantiating a third instance of the role in response to the reply message.

11. The computer-readable memory medium of claim 10 , wherein the method implemented by the program instructions further comprises:

the first peer node removing the first instance of the role in response to the first message.

12. The computer-readable memory medium of claim 7 , wherein the method implemented by the program instructions further comprises:

instantiating a plurality of other instances of the role on peer nodes in the peer-to-peer network other than the first peer node and the second peer node so that there is a total of N instances of the role, where N is an integer greater than 2;

wherein the initiating peer node requests that the first message be delivered to a minimum number M of instances of the role, wherein M is an integer greater than 2 and less than N;

wherein said sending the first message further comprises sending the first message to at least M−2 other instances of the role on other peer nodes in addition to the first instance of the role on the first peer node and the second instance of the role on the second peer node.

13. A system comprising:

a plurality of peer nodes;

wherein the peer nodes include memory that stores program instructions executable to implement;

instantiating a first instance of a role on a first peer node of the plurality of peer nodes;

instantiating a second instance of the role on a second peer node of the plurality of peer nodes;

wherein the role represents a particular address;

storing routing information on each respective peer node of at least a subset of the plurality of peer nodes, wherein the routing information stored on each of the respective peer nodes maps the role to one or more links over which the respective peer node should propagate messages addressed to the role;

sending a first message addressed to the role, wherein the first message does not identify the first peer node and the second peer node as destination nodes for the first message, wherein sending the first message comprises sending the first message to the first instance of the role on the first peer node and the second instance of the role on the second peer node by propagating the first message from an initiating peer node through one or more respective peer nodes in the at least a subset of the plurality of peer nodes, wherein each of the one or more respective peer nodes uses the routing information stored on the respective peer node to determine the one or more links over which to propagate the first message;

wherein the role has a name; and

wherein the first message is addressed to the name of the role.

14. The system of claim 13 , wherein the program instructions are further executable to implement the following after said sending the first message:

removing the first instance of the role on the first peer node;

instantiating a third instance of the role on a third peer node of the plurality of peer nodes; and

changing the routing information stored on one or more of the peer nodes in the at least a subset of the peer nodes so that a subsequent message addressed to the role is sent from the initiating peer node to the second instance of the role on the second peer node and the third instance of the role on the third peer node.

15. The system of claim 14 ,

wherein the subsequent message is addressed to the role in an identical manner as the first message.

16. The system of claim 13 ,

wherein the first message comprises a request by the initiating peer node to instantiate an instance of the role;

wherein the program instructions are further executable to implement;

in response to the first message, the first peer node returning a reply message granting permission to instantiate the role; and

the initiating peer node instantiating a third instance of the particular role in response to the reply message.

17. The system of claim 13 , wherein the program instructions are further executable to implement:

instantiating a plurality of other instances of the role on peer nodes other than the first peer node and the second peer node so that there is a total of N instances of the role, where N is an integer greater than 2;

wherein the initiating peer node requests that the first message be delivered to a minimum number M of instances of the role, wherein M is an integer greater than 2 and less than N;

wherein said sending the first message further comprises sending the first message to at least M−2 other instances of the role on other peer nodes in addition to the first instance of the role on the first peer node and the second instance of the role on the second peer node.

Assignments (14)
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 070530/0497 Recorded Dec 1, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0730 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 069585/0150 Recorded Dec 1, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0848 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
SECURITY INTEREST Recorded Dec 10, 2024
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 069563/0243 →
PATENT SECURITY AGREEMENT Recorded Dec 10, 2024
From: ARCTERA US LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069585/0150 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →