Claims
- 1. 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 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.
- 2. The method of claim 1, further comprising the steps of:
(4) receiving the second address from the second name server; and (5) storing the second address in a cache.
- 3. The method of claim 1, further comprising the steps of:
(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.
- 4. The method of claim 1, 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.
- 5. The method of claim 1, 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.
- 6. The method of claim 1, 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.
- 7. The method of claim 1, 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).
- 8. The method of claim 1, 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.
- 9. The method of claim 1, further comprising the step of requesting acceleration information representing partially resolved name results from the second name server.
- 10. 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 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.
- 11. The computer-readable medium of claim 10, wherein the computer-executable instructions further perform the steps of:
(4) receiving the second address from the second name server; and (5) storing the second address in a cache.
- 12. The computer-readable medium of claim 10, wherein the computer-executable instructions further perform the steps of:
(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.
- 13. The computer-readable medium of claim 10, 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.
- 14. The computer-readable medium of claim 10, 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.
- 15. A computer comprising a processor and a memory including computerexecutable instructions comprising:
a first group of computer-executable instructions comprising a client that transmits a message to a virtual network endpoint; and a second group of computer-executable instructions comprising a virtual name resolution proxy that perform the steps of:
(1) receiving from the client a message and a name associated with the virtual network endpoint, wherein the name comprises a plurality of components; (2) transmitting a first request to a first name server to resolve a first component of the name; (3) receiving a first address from the first name server; and (4) transmitting the name to a second name server having an address corresponding to the first address.
- 16. 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; and (5) transmitting the message to the communication endpoint corresponding to the second address.
- 17. The method of claim 16, further comprising the step of transmitting the first address from the first virtual name router to an originator of the message.
- 18. The method of claim 17, further comprising the step of transmitting the second address from the second virtual name router to the originator of the message.
- 19. The method of claim 16, 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 16, 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 16, further comprising the step of converting a protocol format of the message in the second virtual name router.
- 22. The method of claim 16, 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 16, 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 16, wherein step (4) comprises the step of providing a default routing for the name.
- 25. 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 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.
- 26. The method of claim 25, further comprising the steps of:
(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.
- 27. The method of claim 25, 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.
- 28. The method of claim 25, 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.
- 29. The method of claim 28, 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.
- 30. The method of claim 28, 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.
- 31. The method of claim 28, 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.
- 32. The method of claim 28, 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.
- 33. A name router comprising a computer programmed with computer-executable instructions that perform the steps of:
(1) receiving a request to route a message to a communication endpoint identified by a virtual name; (2) resolving a portion of the virtual name into an address using a virtual name table that maps virtual name components to addresses; and (3) forwarding the message to the resolved address, wherein the resolved address corresponds to another name router.
- 34. The name router of claim 33, wherein the computer-executable instructions perform step (2) by applying a mapping policy that resolves a given virtual name differently depending on the mapping policy.
- 35. The name router of claim 34, wherein the computer-executable instructions perform step (2) by applying a policy that resolves the virtual 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.
- 36. The name router of claim 34, wherein the computer-executable instructions perform step (2) by applying a policy that resolves a given name differently depending on a domain of an originator of the message.
- 37. The name router of claim 34, wherein the computer-executable instructions perform step (2) by applying a policy that resolves a given name differently depending on a header portion of the message excluding the name.
- 38. The name router of claim 34, wherein the computer-executable instructions perform step (2) by 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.
- 39. The name router of claim 34, wherein the computer-executable instructions further perform the step of converting a protocol of the message.
- 40. The name router of claim 34, wherein the computer-executable instructions further perform the step of generating, in response to an external request, a unique name incorporating a portion of the virtual name.
- 41. The name router of claim 34, wherein the computer-executable instructions further perform the step of generating a change notification to other name routers.
- 42. A method of routing a message to a communication endpoint in a network through a plurality of virtual name routers, wherein the communication endpoint is identified using a name of the form A/B/C, wherein each of A, B, and C comprises a discrete name component, the method comprising the steps of:
(1) transmitting the name to a domain-name server; (2) receiving from the domain-name server an Internet Protocol address corresponding to the A component of the name; (3) transmitting the message and the name to a first virtual name router corresponding to the Internet Protocol address; and (4) at the first virtual name router, resolving the B component of the name into an address of a second virtual name router and forwarding the message and the name to the address of the second virtual name router; (5) at the second virtual name router, resolving the C component of the name into an address of the communication endpoint and forwarding the message to the address of the communication endpoint.
- 43. The method of claim 42, further comprising the step of storing in each of the first and second virtual name routers a copy of a partially resolved portion of the name.
Parent Case Info
[0001] This application claims priority to U.S. provisional application serial No. 60/______ (attorney docket number MS188903.1) filed on Oct. 16, 2001, and U.S. provisional application serial No. 60/______ (attorney docket number MS188903.2) filed on Oct. 19, 2001, each of which is herein incorporated by reference.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60329796 |
Oct 2001 |
US |
|
60346370 |
Oct 2001 |
US |