IP Library Granted Patent US 7,194,553
Granted Patent B2
US 7,194,553 · App. 09/983,539 · Granted Mar 20, 2007

Resolving virtual network names

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,194,553
App. No.
09/983,539
Granted
Mar 20, 2007
Kind
B2
Abstract

An apparatus and method is provided for resolving virtual network names using one or more name routers. A conventional Uniform Resource Locator (URL) naming scheme is extended by allowing any component to be mapped to an address. The resolution process occurs recursively through a plurality of name routers. Resolution can be contextual, such that the same virtual network name may be resolved differently depending on the identity of the client or other parameters.

Claims (61)

1. A method of routing a message to a communication endpoint identified by a name comprising a plurality of discrete components, the method comprising the steps of:

(1) receiving the message identified by a name comprising a plurality of discrete components at a first name router;

(2) in the first name router, resolving a first portion of the name into a first address;

(3) transmitting the message from the first name router to the first address resolved in step (2);

(4) receiving the message at a second name router corresponding to the address resolved in step (2);

(5) at the second name router, resolving a second portion of the name into a second address; and

(6) transmitting the message to a computer corresponding to the second address;

(7) transmitting the first address from the first name router to an originator of the message; and

(8) transmitting the second address from the second name router to the originator of the message.

2. The method of claim 1 , wherein step (2) is performed on the basis of a resolution policy that allows the same name to be resolved to a different address under different circumstances.

3. The method of claim 2 , wherein step (2) comprises the step of resolving the name to a first address if the message originates from a first originator, and resolving the name to a second address if the message originates from a second originator.

4. The method of claim 2 , wherein step (2) comprises the step of resolving the name on the basis of a policy that resolves a given name differently depending on a domain of an originator of the message.

5. The method of claim 2 , wherein step (2) comprises the step of resolving the name on the basis of a policy that resolves a given name differently depending on a header portion of the message excluding the name.

6. The method of claim 2 , wherein step (2) comprises the step of resolving the name on the basis of a policy that resolves a given name differently depending on a content portion of the message excluding the name.

7. The method of claim 1 , further comprising the step of, prior to step (3), converting the message from a first protocol to a second protocol on the basis of information contained in a portion of the name.

8. A method of resolving a name of a communication endpoint, wherein the name comprises a plurality of discrete name components, the method comprising the steps of:

(1) transmitting the name having a plurality of discrete name components to a first name server;

(2) receiving from the first name server a first address corresponding to resolution of a first component of the name;

(3) transmitting the name to a second name server at the first address in order to resolve at least one other of the components of the name into a second address;

(4) receiving the second address from the second name server; and

(5) storing the second address in a cache.

9. The method of claim 8 , wherein step (3) comprises the step of transmitting the name to the second name server with a message intended for delivery to the communication endpoint.

10. The method of claim 8 , wherein step (2) comprises the step of receiving an Internet Protocol (IP) address as the first address, and wherein step (3) comprises the step of transmitting to a name server having the IP address.

11. The method of claim 8 , wherein step (3) comprises the step of transmitting a name having a first component identifying a protocol scheme; a second component identifying a host server; and a third component identifying a resource.

12. The method of claim 8 , further comprising the step of, prior to step (1), checking to determine whether the name is stored in a local cache and, if so, transmitting a message to the communication endpoint without performing steps (2) and (3).

13. The method of claim 8 , further comprising the step of storing in a local cache a plurality of partial name resolution results for the same name from a plurality of different name servers.

14. The method of claim 8 , further comprising the step of requesting acceleration information representing partially resolved name results from the second name server.

15. A computer-readable medium comprising computer-executable instructions that, when executed by a computer, resolve a name of a communication endpoint, wherein the name comprises a plurality of discrete name components, the instructions performing the steps of:

(1) transmitting the name having a plurality of discrete name components to a first name server;

(2) receiving from the first name server a first address corresponding to resolution of a first component of the name;

(3) transmitting the name to a second name server at the first address in order to resolve at least one other of the components of the name into a second address;

(4) receiving the second address from the second name server; and

(5) storing the second address in a cache.

16. The computer-readable medium of claim 15 , wherein the computer-executable instructions further perform the step of transmitting the name to the second name server with a message intended for delivery to the communication endpoint.

17. The computer-readable medium of claim 15 , wherein the computer-executable instructions further perform the step of receiving an Internet Protocol (IP) address as the first address, and wherein step (3) comprises the step of transmitting to a name server having the IP address.

18. A method of resolving names in a computer network, comprising the steps of:

(1) transmitting to a first virtual name router a message intended for delivery to a communication endpoint identified by a name;

(2) the first virtual name router resolving the name into a first address;

(3) transmitting the message to a second virtual name router corresponding to the first address;

(4) the second virtual name router resolving the name into a second address;

(5) transmitting the message to the communication endpoint corresponding to the second address;

(6) transmitting the first address from the first virtual name router to an originator of the message; and

(7) transmitting the second address from the second virtual name router to the originator of the message.

19. The method of claim 18 , wherein step (2) comprises the step of resolving the name on the basis of a policy that resolves a given name differently depending on a resolution policy stored in the first virtual name router.

20. The method of claim 18 , further comprising the step of forwarding the message to a plurality of addresses depending on a resolution policy stored in the first virtual name router.

21. The method of claim 18 , further comprising the step of converting a protocol format of the message in the second virtual name router.

22. The method of claim 18 , further comprising the step of transmitting a notification from the second virtual name router to the first virtual name router of a name change.

23. The method of claim 18 , further comprising the step of, in the first virtual name router, generating and returning upon request a unique name component incorporating at least a part of the name.

24. The method of claim 18 , wherein step (4) comprises the step of providing a default routing for the name.

25. A method of resolving a name of a communication endpoint. wherein the name comprises a plurality of discrete name components, the method comprising the steps of:

(1) transmitting the name having a plurality of discrete name components to a first name server;

(2) receiving from the first name server a first address corresponding to resolution of a first component of the name; and

(3) transmitting the name to a second name server at the first address in order to resolve at least one other of the components of the name into a second address

(4) receiving the second address from the second name server; and

(5) transmitting the message to the second address for delivery to the communication endpoint.

26. A computer-readable medium comprising computer-executable instructions that, when executed by a computer, resolve a name of a communication endpoint, wherein the name comprises a plurality of discrete name components, the instructions performing the steps of:

(1) transmitting the name having a plurality of discrete name components to a first name server;

(2) receiving from the first name server a first address corresponding to resolution of a first component of the name; and

(3) transmitting the name to a second name server at the first address in order to resolve at least one other of the components of the name into a second address

(4) receiving the second address from the second name server; and

(5) transmitting the message to the second address for delivery to the communication endpoint.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034541/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2002
From: LUCCO, STEVEN E.; CHRISTENSEN, ERIK B.; LAYMAN, ANDREW J.; LEVIN, DAVID E.; LOVERING, BRADFORD H.; NIELSON, HENRIK FRYSTYK; SCHEWCHUK, JOHN P.
To: MICROSOFT
Reel/Frame 012716/0815 →