Claims
- 1. A peer computing system comprising:
a plurality of peer nodes operable to couple to a network, wherein each of the plurality of peer nodes comprises:
one or more network interfaces, wherein each network interface is configured to implement at least one of one or more network transport protocols; and one or more endpoints, wherein each endpoint corresponds to and uniquely identifies one of the one or more network interfaces; wherein each of the plurality of peer nodes is operable to:
obtain a pipe advertisement describing a pipe, wherein the pipe represents a virtual communications channel for communicating with one or more of the plurality of peer nodes on the network, wherein the pipe advertisement specifies a pipe type, and wherein the pipe advertisement includes binding information for an endpoint of another one of the plurality of peer nodes, wherein the endpoint of the other peer node corresponds to a network interface of the peer node that implements a particular network transport protocol that supports the pipe type; bind the pipe advertisement to one of the one or more endpoints on the particular peer node, wherein the endpoint of the particular peer node corresponds to a network interface of the particular peer node that implements the particular network transport protocol that supports the pipe type; and communicate with the other peer node over the pipe in accordance with the particular network transport protocol.
- 2. The peer computing system as recited in claim 1, wherein, to bind the pipe advertisement, the particular peer node is further operable to:
discover the endpoint of the other peer node on the network; and establish a communications channel between the endpoint of the particular peer node and the endpoint of the other peer node to instantiate the pipe between the particular peer node and the other peer node.
- 3. The peer computing system as recited in claim 2, wherein, to discover the endpoint of the other peer node, the particular peer node is further operable to discover a resource advertisement on the network in accordance with a discovery protocol, wherein the resource advertisement includes information specifying the endpoint of the other peer node.
- 4. The peer computing system as recited in claim 2, wherein, to discover the endpoint of the other peer node, the particular peer node is further operable to discover a peer advertisement corresponding to the other peer on the network in accordance with a discovery protocol, and wherein the peer advertisement includes an endpoint advertisement corresponding to the endpoint of the other peer node.
- 5. The peer computing system as recited in claim 2, wherein, to discover the endpoint of the other peer node, the particular peer node is further operable to discover an endpoint advertisement corresponding to the endpoint of the other peer node in accordance with a discovery protocol, wherein the endpoint advertisement includes information specifying the particular network transport protocol corresponding to the endpoint of the other peer node.
- 6. The peer computing system as recited in claim 1, wherein one or more of the plurality of peer nodes further comprises a pipe service for establishing and managing pipe connections between the peer nodes, wherein the pipe service is accessible by the plurality of peer nodes using a pipe binding protocol;
wherein, to bind the pipe advertisement, the particular peer node is further operable to send a message identifying the pipe to the pipe service in accordance with the pipe binding protocol; wherein the pipe service is operable to:
receive the message; and send a response message to the particular peer node in accordance with the pipe binding protocol, wherein the response message specifies the endpoint of the other peer node; wherein, to bind the pipe advertisement, the particular peer node is further operable to:
receive the response message from the pipe service; and establish a communications channel between the endpoint of the particular peer node and the endpoint of the other peer node specified in the response message to instantiate the pipe between the particular peer node and the other peer node.
- 7. The peer computing system as recited in claim 6, wherein the message includes the pipe advertisement.
- 8. The peer computing system as recited in claim 6, wherein the response message includes a peer advertisement for the other peer, wherein the peer advertisement includes information specifying the endpoint of the other peer node.
- 9. The peer computing system as recited in claim 6, wherein information specifying the endpoint of the other peer node is comprised in an endpoint advertisement, wherein the endpoint advertisement specifies a particular network transport protocol corresponding to the endpoint of the other peer node.
- 10. The peer computing system as recited in claim 6, wherein the pipe service is further operable to:
cache information specifying endpoints for one or more pipes including the pipe described in the pipe advertisement; and retrieve the information specifying the endpoint of the other peer node from the cached information.
- 11. The peer computing system as recited in claim 6, wherein the pipe service is further operable to discover information specifying the endpoint of the other peer node on the network in accordance with a discovery protocol.
- 12. The peer computing system as recited in claim 11, wherein the information specifying the endpoint of the other peer node is comprised in an endpoint advertisement corresponding to the endpoint of the other peer node, wherein the endpoint advertisement further comprises information specifying a particular network transport protocol corresponding to the endpoint of the other peer node.
- 13. The peer computing system as recited in claim 6, wherein the pipe service is further operable to cache information specifying endpoints for one or more pipes including the pipe described in the pipe advertisement, wherein the message indicates if the pipe service is to retrieve the information specifying the endpoint of the other peer node from the cached information or to discover the information specifying the endpoint of the other peer node on the network in accordance with a discovery protocol.
- 14. The peer computing system as recited in claim 6, wherein the message specifies a particular one of the one or more peer nodes comprising the pipe service to respond to the message.
- 15. The peer computing system as recited in claim 1, wherein, to bind the pipe advertisement, the particular peer node is further operable to:
send a message to at least a subset of the plurality of peer nodes in accordance with a pipe binding protocol, wherein the message requests information describing endpoints bound to the pipe advertisement; and receive one or more response messages to the message from the at least a subset of the plurality of peer nodes in accordance with the pipe binding protocol, wherein each response message identifies at least one endpoint bound to the pipe advertisement.
- 16. The peer computing system as recited in claim 15, wherein the message specifies a particular one of the plurality of peer nodes to respond to the message.
- 17. The peer computing system as recited in claim 15, wherein at least a subset of the plurality of peer nodes are each further operable to cache information describing endpoints for one or more pipes, wherein the message specifies if the requested information describing the endpoints bound to the pipe advertisement is to be retrieved from the cached information or discovered on the network.
- 18. The peer computing system as recited in claim 1, wherein, to obtain the pipe advertisement, the particular peer node is further operable to discover the pipe advertisement on the network in accordance with a discovery protocol.
- 19. The peer computing system as recited in claim 1, wherein, to obtain the pipe advertisement, the particular peer node is further operable to:
receive a message including the pipe advertisement; and obtain the pipe advertisement from the message including the pipe advertisement.
- 20. The peer computing system as recited in claim 1, wherein, to obtain the pipe advertisement, the particular peer node is further operable to obtain a resource advertisement for a resource on the network, wherein the pipe advertisement is included in the resource advertisement.
- 21. The peer computing system as recited in claim 20, wherein the resource is a service provided by the other peer node on the network, and wherein the resource advertisement is a service advertisement.
- 22. The peer computing system as recited in claim 20, wherein the resource is the other peer node, and wherein the resource advertisement is a peer advertisement.
- 23. The peer computing system as recited in claim 20, wherein the resource is a peer group on the network comprising one or more peer nodes including the other peer node, and wherein the resource advertisement is a peer group advertisement.
- 24. The peer computing system as recited in claim 1, wherein the endpoint of the other peer node is associated with a service implemented on the other peer node, and wherein, to communicate with the other peer node, the particular peer node is further operable to communicate with the service on the other peer node over the pipe.
- 25. The peer computing system as recited in claim 1, wherein the endpoint of the particular peer node is associated with a service implemented on the peer node, wherein the endpoint of the other peer node is associated with a service implemented on the other peer node, and wherein, to communicate with the other peer node, the service on the particular peer node is operable to communicate with the service on the other peer node over the pipe.
- 26. The peer computing system as recited in claim 1, wherein the endpoint of the other peer node is associated with an application implemented on the other peer node, and wherein, to communicate with the other peer node, the particular peer node is further operable to with the application on the other peer node over the pipe.
- 27. The peer computing system as recited in claim 1, wherein the pipe is configured to provide unidirectional communications, wherein the endpoint of the other peer node is an output for sending messages to the peer node, and wherein the one of the one or more endpoints on the peer node is an input for receiving the messages.
- 28. The peer computing system as recited in claim 1, wherein the pipe is configured to provide unidirectional communications, wherein the one of the one or more endpoints on the peer node is an output for sending messages to the other peer node and the endpoint of the other peer node is an input for receiving the messages.
- 29. The peer computing system as recited in claim 28, wherein the pipe advertisement further includes binding information for another endpoint of the other peer node corresponding to another pipe configured to provide unidirectional communications, wherein the particular peer node is further operable to bind the pipe advertisement to another one of the one or more endpoints on the peer node, and wherein the other endpoint of the other peer node is an output for sending other messages to the peer node and the other one of the one or more endpoints on the peer node is an input for receiving the other messages.
- 30. The peer computing system as recited in claim 1, wherein the pipe is configured to provide bidirectional communications, wherein the one of the one or more endpoints on the peer node is configured to send messages to and receive other messages from the other peer node, and wherein the endpoint of the other peer node is configured to receive the messages and send the other messages.
- 31. The peer computing system as recited in claim 1, wherein the pipe is configured to provide asynchronous communications.
- 32. The peer computing system as recited in claim 1, wherein the pipe is configured to provide unreliable transmission of messages, wherein the messages transmitted by an output endpoint of the pipe are not guaranteed to be received at an input endpoint, and wherein each of the messages is transmitted one or more times on the pipe.
- 33. The peer computing system as recited in claim 1, wherein the pipe is configured to provide stateless communications, wherein the endpoints of the pipe do not maintain states of the particular network transport protocol used on the pipe.
- 34. The peer computing system as recited in claim 1, wherein one or more other endpoints on one or more other peer nodes are bound to the pipe advertisement, wherein the particular peer node is further operable to send messages on the pipe to all endpoints currently bound to the pipe.
- 35. The peer computing system as recited in claim 1, wherein, to communicate with the other peer node, messages sent between the peer node and the other peer node pass through at least a subset of the plurality of peer nodes, wherein the at least a subset of the plurality of peer nodes are each operable to:
receive the messages on an endpoint of the particular one of the at least a subset of the plurality of peer nodes; and transmit the messages on another endpoint of the particular one of the at least a subset of the plurality of peer nodes.
- 36. The peer computing system as recited in claim 1, wherein the pipe type is reliable, wherein on the pipe delivery of messages sent from an output endpoint to each of one or more input endpoints bound to the pipe advertisement is guaranteed, each of the messages is delivered only once to each of the one or more input endpoints, and ordering of the messages received at each of the one or more input endpoints is maintained.
- 37. The peer computing system as recited in claim 1, wherein the pipe type is unreliable, wherein on the pipe delivery of messages sent from an output endpoint to each of one or more input endpoints bound to the pipe advertisement is not guaranteed, each of the messages is delivered one or more times to each of the one or more input endpoints, and ordering of the messages received at each of one or more input endpoints is not guaranteed.
- 38. The peer computing system as recited in claim 1, wherein the pipe type is secure, wherein on the pipe messages to each of one or more input endpoints bound to the pipe advertisement are encrypted and delivery of the messages is reliable.
- 39. The peer computing system as recited in claim 1, wherein at least one of the plurality of peer nodes is further operable to:
unbind the pipe advertisement from the endpoint of the other peer node; and bind the pipe advertisement to an endpoint of a different one of the plurality of peer nodes, wherein the endpoint of the different one of the plurality of peer nodes corresponds to a network interface that implements the particular network transport protocol that supports the pipe type; wherein the particular peer node is further operable to communicate with the different one of the plurality of peer nodes over the pipe in accordance with the particular network transport protocol.
- 40. The peer computing system as recited in claim 39, wherein the particular peer node further comprises a process executable within the particular peer node, wherein the process is operable to:
communicate with the other peer node over the pipe prior to said unbind from the endpoint of the other peer node; and communicate with the different peer node after said bind to the one of the one or more endpoints on the different peer node without affecting execution of the process.
- 41. The peer computing system as recited in claim 39, wherein the particular peer node is not aware of which of the plurality of peer nodes the pipe advertisement is bound to.
- 42. The peer computing system as recited in claim 1, wherein the particular peer node is not aware of which of the plurality of peer nodes the particular peer node is communicating with over the pipe.
- 43. The peer computing system as recited in claim 1, further comprising a peer group including each of the plurality of peer nodes as a member peer in the peer group.
- 44. A peer node comprising:
one or more network interfaces operable to couple to a network, wherein each network interface is configured to implement at least one of one or more network transport protocols; one or more endpoints, wherein each endpoint corresponds to and uniquely identifies one of the one or more network interfaces; and a memory comprising program instructions, wherein the program instructions are executable within the peer node to:
obtain a pipe advertisement describing a pipe, wherein the pipe represents a virtual communications channel for communicating with one or more peer nodes on the network, wherein the pipe advertisement specifies a pipe type, and wherein the pipe advertisement includes binding information for an endpoint of another peer node; bind the pipe advertisement to one of the one or more endpoints on the peer node, wherein the endpoint of the peer node and the endpoint of the other peer node each correspond to a network interface that implements a particular network transport protocol that supports the pipe type; and communicate with the other peer node over the pipe in accordance with the particular network transport protocol.
- 45. The peer node as recited in claim 44, wherein, to bind the pipe advertisement, the program instructions are further executable to:
discover the endpoint of the other peer node on the network; and establish a communications channel between the endpoint of the peer node and the endpoint of the other peer node to instantiate the pipe between the peer node and the other peer node.
- 46. The peer node as recited in claim 45, wherein, to discover the endpoint of the other peer node, the peer node is further operable to discover a resource advertisement on the network in accordance with a discovery protocol, wherein the resource advertisement includes information specifying the endpoint of the other peer node.
- 47. The peer node as recited in claim 44, wherein, to discover the endpoint of the other peer node, the peer node is further operable to discover a peer advertisement corresponding to the other peer on the network in accordance with a discovery protocol, and wherein the peer advertisement includes an endpoint advertisement corresponding to the endpoint of the other peer node.
- 48. The peer node as recited in claim 44, wherein, to bind the pipe advertisement, the program instructions are further executable to:
send a message identifying the pipe to at least a subset of the one or more peer nodes on the network in accordance with a pipe binding protocol; receive a response message from at least one of the at least a subset of the one or more peer nodes in accordance with the pipe binding protocol, wherein the response message includes information specifying the endpoint of the other peer node; and establish a communications channel between the endpoint of the peer node and the endpoint of the other peer node to instantiate the pipe between the peer node and the other peer node.
- 49. The peer node as recited in claim 48, wherein at least one of the at least a subset of the one or more peer nodes includes cached information specifying endpoints for one or more pipes including the pipe described in the pipe advertisement, wherein the message specifies if the at least one of the at least a subset of the one or more peer nodes is to retrieve the information specifying the endpoint of the other peer node from the cached information or to discover the information specifying the endpoint of the other peer node on the network in accordance with a discovery protocol.
- 50. The peer node as recited in claim 44, wherein, to obtain the pipe advertisement, the program instructions are further executable to discover the pipe advertisement on the network in accordance with a discovery protocol.
- 51. The peer node as recited in claim 44, wherein, to obtain the pipe advertisement, the program instructions are further executable to:
receive a message including the pipe advertisement; and obtain the pipe advertisement from the message including the pipe advertisement.
- 52. The peer node as recited in claim 44, wherein, to get the pipe advertisement, the program instructions are further executable to obtain a resource advertisement for a resource on the network, wherein the pipe advertisement is included in the resource advertisement.
- 53. The peer node as recited in claim 52, wherein the resource is one of the other peer node, a service implemented on the other peer node, an application implemented on the other peer node, and a peer group on the network comprising one or more member peer nodes including the other peer node.
- 54. The peer node as recited in claim 44, wherein the endpoint of the other peer node is associated with a service or application implemented on the other peer node, and wherein, to communicate with the other peer node, the program instructions are further executable to communicate with the service or application on the other peer node over the pipe.
- 55. The peer node as recited in claim 44, wherein the pipe is configured to provide unidirectional communications, wherein the one of the one or more endpoints on the peer node is an output for sending messages to the other peer node, and wherein the endpoint of the other peer node is an input for receiving the messages.
- 56. The peer node as recited in claim 55, wherein the pipe advertisement further includes binding information for another endpoint of the other peer node corresponding to another pipe configured to provide unidirectional communications, wherein the program instructions are further executable to bind the pipe advertisement to another one of the one or more endpoints on the peer node, and wherein the other endpoint of the other peer node is an output for sending other messages to the peer node and the other one of the one or more endpoints on the peer node is an input for receiving the other messages.
- 57. The peer node as recited in claim 44, wherein the pipe is configured to provide bi-directional communications, wherein the one of the one or more endpoints on the peer node is configured to send messages to and receive other messages from the other peer node, and wherein the endpoint of the other peer node is configured to receive the messages and send the other messages.
- 58. The peer node as recited in claim 44, wherein the pipe is configured to provide asynchronous communications.
- 59. The peer node as recited in claim 44, wherein the pipe is configured to provide unreliable transmission of messages, wherein the messages transmitted by an output endpoint of the pipe are not guaranteed to be received at an input endpoint, and wherein each of the messages is transmitted one or more times on the pipe.
- 60. The peer node as recited in claim 44, wherein the pipe is configured to provide stateless communications, wherein the endpoints of the pipe do not maintain states of the particular network transport protocol used on the pipe.
- 61. The peer node as recited in claim 44, wherein one or more other endpoints on one or more other peer nodes are bound to the pipe advertisement, wherein the program instructions are further executable to send messages on the pipe to all endpoints currently bound to the pipe.
- 62. The peer node as recited in claim 44, wherein, to communicate with the other peer node, messages sent between the peer node and the other peer node pass through one or more other peer nodes on the network bound to the pipe, wherein the one or more other peer nodes are each operable to:
receive the messages on an endpoint of the particular one of the one or more other peer nodes; and transmit the messages on another endpoint of the particular one of the one or more other peer nodes.
- 63. The peer node as recited in claim 44, wherein the pipe type is reliable, wherein on the pipe delivery of messages sent from an output endpoint to each of one or more input endpoints bound to the pipe advertisement is guaranteed, each of the messages is delivered only once to each of the one or more input endpoints, and ordering of the messages received at each of the one or more input endpoints is maintained.
- 64. The peer node as recited in claim 44, wherein the pipe type is unreliable, wherein on the pipe delivery of messages sent from an output endpoint to each of one or more input endpoints bound to the pipe advertisement is not guaranteed, each of the messages is delivered one or more times to each of the one or more input endpoints, and ordering of the messages received at each of one or more input endpoints is not guaranteed.
- 65. The peer node as recited in claim 44, wherein the pipe type is secure, wherein on the pipe messages to each of one or more input endpoints bound to the pipe advertisement are encrypted and delivery of the messages is reliable.
- 66. The peer node as recited in claim 44, wherein the peer node and the other peer node are member peers in a peer group.
- 67. A peer node comprising:
a network interface operable to couple to a network; a memory comprising program instructions, wherein the program instructions are executable within the peer node to: receive a message from another peer node on the network in accordance with a pipe binding protocol, wherein the message identifies a pipe and specifies a network transport protocol of the pipe, wherein the pipe represents a virtual communications channel for communicating between the other peer node and one or more other peer nodes on the network; obtain information specifying an endpoint of one of the one or more other peer nodes on the network, wherein the endpoint of the one of the one or more other peer nodes corresponds to and uniquely identifies a network interface of the one of the one or more other peer nodes, wherein the network interface of the one of the one or more other peer nodes implements the network transport protocol of the pipe; and send a response message to the other peer node in accordance with the pipe binding protocol, wherein the response message specifies the endpoint of the one of the one or more other peer nodes.
- 68. The peer node as recited in claim 67, wherein the response message is configured for use by the other peer node to establish a communications channel between an endpoint of the peer node and the endpoint of the other peer node to instantiate the pipe between the peer node and the other peer node.
- 69. The peer node as recited in claim 67, wherein the message includes a pipe advertisement corresponding to the pipe, wherein the pipe advertisement includes an identifier for the pipe and a specification of a pipe type of the pipe.
- 70. The peer node as recited in claim 69, wherein the pipe type is reliable, wherein on the pipe delivery of messages sent from an output endpoint to each of one or more input endpoints bound to the pipe advertisement is guaranteed, each of the messages is delivered only once to each of the one or more input endpoints, and ordering of the messages received at each of the one or more input endpoints is maintained.
- 71. The peer node as recited in claim 69, wherein the pipe type is unreliable, wherein on the pipe delivery of messages sent from an output endpoint to each of one or more input endpoints bound to the pipe advertisement is not guaranteed, each of the messages is delivered one or more times to each of the one or more input endpoints, and ordering of the messages received at each of one or more input endpoints is not guaranteed.
- 72. The peer node as recited in claim 69, wherein the pipe type is secure, wherein on the pipe messages to each of one or more input endpoints bound to the pipe advertisement are encrypted and delivery of the messages is reliable.
- 73. The peer node as recited in claim 67, wherein the information specifying the endpoint of the one of the one or more other peer nodes is comprised in an endpoint advertisement, wherein the endpoint advertisement specifies a particular network transport protocol corresponding to the endpoint of the one of the one or more other peer nodes.
- 74. The peer node as recited in claim 67, wherein the program instructions are further executable to cache information specifying endpoints for one or more pipes including the pipe described in the pipe advertisement, and wherein, to obtain the information, the program instructions are further executable to retrieve the information specifying the endpoint of the other peer node from the cached information.
- 75. The peer node as recited in claim 67, wherein, to obtain the information, the program instructions are further executable to discover the information specifying the endpoint of the one of the one or more other peer nodes on the network in accordance with a discovery protocol.
- 76. The peer node as recited in claim 75, wherein the information specifying the endpoint of he one of the one or more other peer nodes is comprised in an endpoint advertisement corresponding to the endpoint of he one of the one or more other peer nodes, wherein the endpoint advertisement further comprises information specifying a particular network transport protocol corresponding to the endpoint of the one of the one or more other peer nodes.
- 77. The peer node as recited in claim 67, wherein the program instructions are further executable to cache information specifying endpoints for one or more pipes including the pipe described in the pipe advertisement, wherein the message indicates if the peer node is to retrieve the information specifying the endpoint of the one of the one or more other peer nodes from the cached information or to discover the information specifying the endpoint of the one of the one or more other peer nodes on the network in accordance with a discovery protocol.
- 78. The peer node as recited in claim 67, wherein the message specifies only the peer node is to respond to the message.
- 79. The peer node as recited in claim 67, wherein the peer node, the other peer node and the one or more other peer nodes are member peers in a peer group.
- 80. The peer node as recited in claim 67, wherein the program instructions implement a pipe service, wherein the pipe service is operable to receive the message, obtain the information specifying the endpoint of the one of the one or more other peer nodes on the network, and to send the response message to the other peer node.
- 81. A peer computing system comprising:
a plurality of peer nodes, wherein each peer node comprises one or more network interfaces, wherein each network interface is configured to implement at least one of one or more network transport protocols; means for one of the plurality of peer nodes to create a pipe on the network, wherein the pipe represents a virtual communications channel for communicating with one or more other of the plurality of peer nodes on the network; means for the peer node to bind the pipe to an endpoint of the peer node, wherein the endpoint of the peer node corresponds to and uniquely identifies one of the one or more network interfaces on the peer node, and wherein the network interface of the peer node corresponding to the endpoint of the peer node implements a particular network transport protocol used on the pipe; means for another one of the plurality of peer nodes to discover the pipe created by the peer node; means for the other peer node to bind the pipe to an endpoint of the other peer node, wherein the endpoint of the other peer node corresponds to and uniquely identifies one of the one or more network interfaces on the other peer node, and wherein the network interface of the other peer node corresponding to the endpoint of the other peer node implements a particular network transport protocol used on the pipe; and means for the other peer node to communicate with the peer node over the pipe in accordance with the particular network transport protocol.
- 82. The peer computing system as recited in claim 81, wherein said means for another one of the plurality of peer nodes to discover the pipe created by the peer node comprises means for the other peer node to discover an endpoint advertisement corresponding to the endpoint of the peer node, wherein the endpoint advertisement includes information specifying the particular network transport protocol corresponding to the endpoint of the peer node.
- 83. The peer computing system as recited in claim 81, further comprising:
means for the other peer node to request information corresponding to the discovered pipe on the network; means for finding the requested information corresponding to the discovered pipe on the network; and means for providing the requested information to the other peer node, wherein the requested information specifies the endpoint of the peer node.
- 84. The peer computing system as recited in claim 83, further comprising:
means for caching information corresponding to pipes implemented by the plurality of peer nodes including the pipe implemented by the peer node on at least one of the plurality of peer nodes; and wherein said means for finding the requested information comprises means for retrieving the information specifying the pipe implemented by the peer node from the cached information.
- 85. The peer computing system as recited in claim 83, wherein said means for another one of the plurality of peer nodes to discover the pipe created by the peer node comprises means for discovering the information corresponding to the discovered pipe on the network in accordance with a discovery protocol.
- 86. The peer computing system as recited in claim 81, wherein said means for the other peer node to discover the pipe implemented by the peer node comprises means for receiving a message on the network including information corresponding to the discovered pipe on the network; and
- 87. The peer computing system as recited in claim 81, wherein said means for another one of the plurality of peer nodes to discover the pipe created by the peer node comprises means for discovering information about a resource on the network, wherein the information about the resource include information corresponding to the discovered pipe on the network.
- 88. The peer computing system as recited in claim 87, wherein the resource is one of a service provided by the peer node on the network, the peer node, and a peer group on the network comprising one or more of the plurality of peer nodes including the peer node.
- 89. The peer computing system as recited in claim 81, wherein the endpoint of the peer node is associated with a service implemented on the peer node, and wherein said means for the other peer node to communicate with the peer node comprises means for the other peer node to communicate with the service on the peer node over the pipe.
- 90. The peer computing system as recited in claim 81, wherein the endpoint of the peer node is associated with a service implemented on the peer node, wherein the endpoint of the other peer node is associated with a service implemented on the other peer node, and wherein said means for the other peer node to communicate with the peer node comprises means for the service on the other peer node to communicate with the service on the peer node over the pipe.
- 91. The peer computing system as recited in claim 81, wherein the pipe is configured to provide unidirectional communications, wherein the endpoint of the other peer node is an output for sending messages to the peer node, and wherein the endpoint of the peer node is an input for receiving the messages.
- 92. The peer computing system as recited in claim 81, wherein the pipe is configured to provide unidirectional communications, wherein the endpoint of the peer node is an output for sending messages to the other peer node, and wherein the endpoint of the other peer node is an input for receiving the messages.
- 93. The peer computing system as recited in claim 81, wherein the pipe is configured to provide bi-directional communications, wherein the endpoint of the peer node is configured to send messages to and receive other messages from the other peer node, and wherein the endpoint of the other peer node is configured to receive the messages and send the other messages.
- 94. The peer computing system as recited in claim 81, wherein the pipe is configured to provide asynchronous communications.
- 95. The peer computing system as recited in claim 81, wherein the pipe is configured to provide unreliable transmission of messages, wherein the messages transmitted by an output endpoint of the pipe are not guaranteed to be received at an input endpoint, and wherein each of the messages is transmitted one or more times on the pipe.
- 96. The peer computing system as recited in claim 81, wherein the pipe is configured to provide stateless communications, wherein the endpoints of the pipe do not maintain states of the particular network transport protocol used on the pipe.
- 97. The peer computing system as recited in claim 81, further comprising:
means for one or more other endpoints on one or more other of the plurality of peer nodes to bind to the pipe; and means for the other peer node to send messages on the pipe to endpoints currently bound to the pipe.
- 98. The peer computing system as recited in claim 81, further comprising means for messages sent on the pipe to pass through one or more other of the plurality of peer nodes between the peer node and the other peer node on the network.
- 99. The peer computing system as recited in claim 81, further comprising:
means for guaranteeing delivery of messages to each of one or more input endpoints bound to the pipe; means for each of the messages to be delivered only once to each of the one or more input endpoints; and means for ordering of the messages received at each of the one or more input endpoints.
- 100. The peer computing system as recited in claim 81, further comprising means for providing reliable and encrypted transfer of messages to each of one or more input endpoints bound to the pipe.
- 101. The peer computing system as recited in claim 81, further comprising:
means for unbinding the pipe advertisement from the endpoint of the peer node; and means for binding the pipe to one of one or more endpoints on a different one of the plurality of peer nodes, wherein the endpoint of the different one of the plurality of peer nodes corresponds to a network interface of the different peer node that implements the particular network transport protocol used by the pipe.
- 102. The peer computing system as recited in claim 81, further comprising means for the plurality of peer nodes to participate as member peers in a peer group.
- 103. A method for establishing a communications channel between peer nodes coupled to a peer-to-peer network, the method comprising:
a peer node obtaining a pipe advertisement describing a pipe, wherein the pipe represents a virtual communications channel for communicating with one or more other peer nodes on the peer-to-peer network, wherein the pipe advertisement specifies a pipe type, and wherein the pipe advertisement includes binding information for an endpoint of another peer node on the peer-to-peer network, wherein the endpoint of the other peer node corresponds to a network interface of the other peer node that implements a network transport protocol that supports the pipe type; binding the pipe advertisement to an endpoint of the peer node, wherein the endpoint of the peer node corresponds to a network interface of the peer node that implements the network transport protocol that supports the pipe type; and the peer node communicating with the other peer node over the pipe in accordance with the network transport protocol.
- 104. The method as recited in claim 103, wherein, in said binding the pipe advertisement, the method further comprises:
discovering the endpoint of the other peer node on the peer-to-peer network; and establishing a communications channel between the endpoint of the peer node and the endpoint of the other peer node to instantiate the pipe between the particular peer node and the other peer node.
- 105. The method as recited in claim 104, wherein, in said discovering the endpoint of the other peer node, the method further comprises discovering a resource advertisement on the network in accordance with a discovery protocol, wherein the resource advertisement includes information specifying the endpoint of the other peer node.
- 106. The method as recited in claim 104, wherein, in said discovering the endpoint of the other peer node, the method further comprises discovering a peer advertisement corresponding to the other peer on the network in accordance with a discovery protocol, and wherein the peer advertisement includes an endpoint advertisement corresponding to the endpoint of the other peer node.
- 107. The method as recited in claim 104, wherein, in said discovering, the method further comprises discovering an endpoint advertisement corresponding to the endpoint of the other peer node, wherein the endpoint advertisement includes information specifying a particular network transport protocol corresponding to the endpoint of the other peer node.
- 108. The method as recited in claim 103, wherein one or more peer nodes on the peer-to-peer network implement a pipe service for establishing and managing pipe connections between the peer nodes, wherein the pipe service is accessible by the peer nodes on the peer-to-peer network using a pipe binding protocol;
wherein, in said binding the pipe advertisement, the method further comprises:
the peer node sending a message identifying the pipe to the pipe service in accordance with the pipe binding protocol; the pipe service receiving the message; the pipe service obtaining information specifying the endpoint of the other peer node; the pipe service sending a response message to the particular peer node in accordance with the pipe binding protocol, wherein the response message specifies the endpoint of the other peer node; the peer node receiving the response message from the pipe service; and establishing a communications channel between the endpoint of the peer node and the endpoint of the other peer node to instantiate the pipe between the particular peer node and the other peer node.
- 109. The method as recited in claim 108, wherein the message includes the pipe advertisement.
- 110. The method as recited in claim 108, wherein the information specifying the endpoint of the other peer node is comprised in an endpoint advertisement, wherein the endpoint advertisement specifies a particular network transport protocol corresponding to the endpoint of the other peer node.
- 111. The method as recited in claim 108, wherein the pipe service caches information specifying endpoints for one or more pipes including the pipe described in the pipe advertisement, and wherein, in said obtaining the information, the method further comprises the pipe service retrieving the information specifying the endpoint of the other peer node from the cached information.
- 112. The method as recited in claim 108, wherein, in said obtaining the information specifying the endpoint of the other peer node, the method further comprises the pipe service discovering the information specifying the endpoint of the other peer node on the peer-to-peer network in accordance with a discovery protocol.
- 113. The method as recited in claim 112, wherein, in said discovering, the method further comprises the pipe service discovering an endpoint advertisement corresponding to the endpoint of the other peer node, wherein the endpoint advertisement includes information specifying a particular network transport protocol corresponding to the endpoint of the other peer node.
- 114. The method as recited in claim 108, wherein the pipe service caches information specifying endpoints for one or more pipes including the pipe described in the pipe advertisement, wherein, in said obtaining the information specifying the endpoint of the other peer node, the method further comprises:
if the message indicates the pipe service is to retrieve the information specifying the endpoint of the other peer node from the cached information, the pipe service retrieving the information specifying the endpoint of the other peer node from the cached information; and if the message indicates the pipe service is not to retrieve the information specifying the endpoint of the other peer node from the cached information, the pipe service discovering the information specifying the endpoint of the other peer node on the peer-to-peer network in accordance with a discovery protocol.
- 115. The method as recited in claim 108, wherein the message specifies the pipe service implemented on a particular one of the one or more peer nodes is to respond to the message.
- 116. The method as recited in claim 103, wherein, in said obtaining the pipe advertisement, the method further comprises the peer node discovering the pipe advertisement on the peer-to-peer network in accordance with a discovery protocol.
- 117. The method as recited in claim 103, wherein, in said obtaining the pipe advertisement, the method further comprises:
the peer node receiving a message including the pipe advertisement; and the peer node obtaining the pipe advertisement from the message including the pipe advertisement.
- 118. The method as recited in claim 103, wherein, in said obtaining the pipe advertisement, the method further comprises the peer node obtaining a resource advertisement for a resource on the peer-to-peer network, wherein the pipe advertisement is included in the resource advertisement.
- 119. The method as recited in claim 118, wherein the resource is one of the other peer node, a service implemented on the other peer node, an application implemented on the other peer node, and a peer group on the peer-to-peer network comprising one or more member peer nodes including the other peer node.
- 120. The method as recited in claim 103, wherein the endpoint of the other peer node is associated with a service implemented on the other peer node, and wherein, in said communicating with the other peer node, the method further comprises the peer node communicating with the service on the other peer node over the pipe.
- 121. The method as recited in claim 103, wherein the endpoint of the peer node is associated with a service implemented on the peer node, wherein the endpoint of the other peer node is associated with a service implemented on the other peer node, and wherein, in said communicating with the other peer node, the method further comprises the service on the peer node communicating with the service on the other peer node over the pipe.
- 122. The method as recited in claim 103, wherein the endpoint of the other peer node is associated with an application implemented on the other peer node, and wherein, in said communicating with the other peer node, the method further comprises the peer node communicating with the application on the other peer node over the pipe.
- 123. The method as recited in claim 103, wherein the pipe is configured to provide unidirectional communications, wherein the endpoint of the other peer node is an output for sending messages to the peer node, and wherein the one of the one or more endpoints on the peer node is an input for receiving the messages.
- 124. The method as recited in claim 103, wherein the pipe is configured to provide unidirectional communications, wherein the one of the one or more endpoints on the peer node is an output for sending messages to the other peer node, and wherein the endpoint of the other peer node is an input for receiving the messages.
- 125. The method as recited in claim 124, wherein the pipe advertisement includes information for binding another endpoint of the other peer node corresponding to another pipe configured to provide unidirectional communications, the method further comprising the peer node binding the pipe advertisement to another endpoint of the peer node, wherein the other endpoint of the other peer node is an output for sending other messages to the peer node and the other one of the one or more endpoints on the peer node is an input for receiving the other messages.
- 126. The method as recited in claim 103, wherein the pipe is configured to provide bi-directional communications, wherein, in said communicating, the method further comprises:
the peer node sending messages through the endpoint of the peer node over the pipe to the endpoint of the other peer node; and the other peer node sending other messages through the endpoint of the other peer node over the pipe to the endpoint of the peer node.
- 127. The method as recited in claim 103, wherein the pipe is configured to provide asynchronous communications.
- 128. The method as recited in claim 103, wherein the pipe is configured to provide unreliable transmission of messages, wherein the messages transmitted by an output endpoint of the pipe are not guaranteed to be received at an input endpoint, and wherein each of the messages is transmitted one or more times on the pipe.
- 129. The method as recited in claim 103, wherein the pipe is configured to provide stateless communications, wherein the endpoints of the pipe do not maintain states of the particular network transport protocol used on the pipe.
- 130. The method as recited in claim 103, wherein one or more other endpoints on one or more other peer nodes are bound to the pipe advertisement, wherein the method further comprises the peer node sending messages on the pipe to all endpoints currently bound to the pipe.
- 131. The method as recited in claim 103, wherein the pipe passes through a different peer node on the peer-to-peer network, wherein, in said communicating, the method further comprises:
the peer node sending a message to the other peer node on the pipe; the different peer node receiving the message on an endpoint of the different peer node bound to the pipe; the different peer node transmitting the message on another endpoint of the different peer node bound to the pipe; and the other peer node receiving the message transmitted by the different peer node on the pipe.
- 132. The method as recited in claim 103, wherein the pipe type is one of:
a reliable pipe, wherein on the pipe delivery of messages sent from an output endpoint to each of one or more input endpoints bound to the pipe advertisement is guaranteed, each of the messages is delivered only once to each of the one or more input endpoints, and ordering of the messages received at each of the one or more input endpoints is maintained; an unreliable pipe, wherein on the pipe delivery of the messages sent from an output endpoint to each of one or more input endpoints bound to the pipe advertisement is not guaranteed, each of the messages is delivered one or more times to each of the one or more input endpoints, and ordering of the messages received at each of one or more input endpoints is not guaranteed; and a secure pipe, wherein on the pipe messages to each of one or more input endpoints bound to the pipe advertisement are encrypted and delivery of the messages is reliable.
- 133. The method as recited in claim 103, wherein the method further comprises:
unbinding the pipe advertisement from the endpoint of the other peer node; binding the pipe advertisement to an endpoint of a different peer node on the peer-to-peer network, wherein the endpoint of the different peer node corresponds to a network interface of the different peer node that implements the particular network transport protocol that supports the pipe type; and the peer node communicating with the different peer node over the pipe in accordance with the particular network transport protocol.
- 134. The method as recited in claim 133, wherein a process executing within the peer node performs said communicating with the other peer node, wherein the execution of the process is not affected by said unbinding the pipe advertisement from the endpoint of the other peer node and said binding the pipe advertisement to the endpoint of the different peer node.
- 135. The method as recited in claim 133, wherein the peer node is not aware of said unbinding the pipe advertisement from the endpoint of the other peer node and said binding the pipe advertisement to the endpoint of the different peer node.
- 136. The method as recited in claim 103, wherein the peer node and the other peer node are member peers in a peer group.
- 137. A method for establishing a communications channel between peer nodes coupled to a peer-to-peer network, the method comprising:
a peer node receiving a message from another peer node on the peer-to-peer network in accordance with a pipe binding protocol, wherein the message identifies a pipe and specifies a network transport protocol of the pipe, wherein the pipe represents a virtual communications channel for communicating between the other peer node and one or more other peer nodes on the peer-to-peer network; the peer node obtaining information specifying an endpoint of a different peer node on the peer-to-peer network, wherein the endpoint of the different peer node corresponds to and uniquely identifies a network interface of the different peer node, wherein the network interface of the different peer node implements the network transport protocol of the pipe; and the peer node sending a response message to the other peer node in accordance with the pipe binding protocol, wherein the response message specifies the endpoint of the different peer node.
- 138. The method as recited in claim 137, further comprising:
establishing a communications channel between an endpoint of the peer node and the endpoint of the other peer node to instantiate the pipe between the peer node and the other peer node; and the other peer node communicating with the different peer node over the pipe through the endpoint of the different peer node.
- 139. The method as recited in claim 137, wherein the message includes a pipe advertisement corresponding to the pipe, wherein the pipe advertisement identifies the pipe and specifies a pipe type of the pipe.
- 140. The method as recited in claim 139, wherein the pipe type is one of:
a reliable pipe, wherein on the pipe delivery of messages sent from an output endpoint to each of one or more input endpoints bound to the pipe advertisement is guaranteed, each of the messages is delivered only once to each of the one or more input endpoints, and ordering of the messages received at each of the one or more input endpoints is maintained; an unreliable pipe, wherein on the pipe delivery of the messages sent from an output endpoint to each of one or more input endpoints bound to the pipe advertisement is not guaranteed, each of the messages is delivered one or more times to each of the one or more input endpoints, and ordering of the messages received at each of one or more input endpoints is not guaranteed; and a secure pipe, wherein the pipe type is secure, wherein on the pipe messages to each of one or more input endpoints bound to the pipe advertisement are encrypted and delivery of the messages is reliable.
- 141. The method as recited in claim 137, wherein the peer node includes cached information specifying endpoints for one or more pipes including the pipe described in the pipe advertisement, and wherein, in said obtaining the information, the method further comprises the pipe service retrieving the information specifying the endpoint of the different peer node from the cached information.
- 142. The method as recited in claim 137, wherein, in said obtaining the information, the method further comprises the peer node discovering the information specifying the endpoint of the peer-to-peer network in accordance with a discovery protocol.
- 143. The method as recited in claim 137, wherein the peer node includes cached information specifying endpoints for one or more pipes including the pipe described in the pipe advertisement, wherein, in said obtaining the information, the method further comprises:
if the message indicates the peer node is to retrieve the information specifying the endpoint of the different peer node from the cached information, the peer node retrieving the information specifying the endpoint of the different peer node from the cached information; and if the message indicates the peer node is not to retrieve the information specifying the endpoint of the different peer node from the cached information, the peer node discovering the information specifying the endpoint of the peer-to-peer network in accordance with a discovery protocol.
- 144. The method as recited in claim 137, wherein the message specifies only the peer node is to respond to the message.
- 145. The method as recited in claim 137, wherein the peer node, the other peer node and the different peer node are member peers in a peer group.
- 146. An article of manufacture comprising software instructions executable on a peer node to implement:
the peer node obtaining a pipe advertisement describing a pipe, wherein the pipe represents a virtual communications channel for communicating with one or more other peer nodes on the peer-to-peer network, wherein the pipe advertisement specifies a pipe type, and wherein the pipe advertisement includes binding information for an endpoint of another peer node on the peer-to-peer network, wherein the endpoint of the other peer node corresponds to a network interface of the other peer node that implements a network transport protocol that supports the pipe type; binding the pipe advertisement to an endpoint of the peer node, wherein the endpoint of the peer node corresponds to a network interface of the peer node that implements the network transport protocol that supports the pipe type; and the peer node communicating with the other peer node over the pipe in accordance with the network transport protocol.
- 147. The article of manufacture as recited in claim 146, wherein, in said binding the pipe advertisement, the software instructions are further executable to implement:
the peer node discovering the endpoint of the other peer node on the peer-to-peer network in accordance with a discovery protocol; and establishing a communications channel between the endpoint of the peer node and the endpoint of the other peer node to instantiate the pipe between the peer node and the other peer node.
- 148. The article of manufacture as recited in claim 147, wherein, in said discovering the endpoint of the other peer node, the software instructions are further executable to implement discovering a resource advertisement on the network in accordance with a discovery protocol, wherein the resource advertisement includes information specifying the endpoint of the other peer node.
- 149. The article of manufacture as recited in claim 147, wherein, in said discovering the endpoint of the other peer node, the software instructions are further executable to implement discovering a peer advertisement corresponding to the other peer on the network in accordance with a discovery protocol, and wherein the peer advertisement includes an endpoint advertisement corresponding to the endpoint of the other peer node.
- 150. The article of manufacture as recited in claim 147, wherein, in said discovering, the software instructions are further executable to implement the peer node discovering an endpoint advertisement corresponding to the endpoint of the other peer node, wherein the endpoint advertisement includes information specifying a particular network transport protocol corresponding to the endpoint of the other peer node.
- 151. The article of manufacture as recited in claim 147, wherein one or more peer nodes on the peer-to-peer network providing a pipe service for establishing and managing pipe connections between peer nodes on the peer-to-peer network, wherein the pipe service is accessible by the peer nodes on the peer-to-peer network using a pipe binding protocol, and wherein the software instructions are further executable to implement:
the peer node sending a message identifying the pipe to the pipe service in accordance with the pipe binding protocol; the pipe service sending a response message to the peer node in accordance with the pipe binding protocol, wherein the response message specifies the endpoint of the other peer node; the peer node receiving the response message from the pipe service, wherein the response message specifies the endpoint of the other peer node; and establishing a communications channel between the endpoint of the peer node and the endpoint of the other peer node to instantiate the pipe between the peer node and the other peer node.
- 152. The article of manufacture as recited in claim 151, wherein the message includes the pipe advertisement.
- 153. The article of manufacture as recited in claim 151, wherein the information specifying the endpoint of the other peer node is comprised in an endpoint advertisement, wherein the endpoint advertisement specifies a particular network transport protocol corresponding to the endpoint of the other peer node.
- 154. The article of manufacture as recited in claim 151, wherein the pipe service caches information specifying endpoints for one or more pipes including the pipe described in the pipe advertisement, and wherein the pipe service retrieves the information specifying the endpoint of the other peer node from the cached information.
- 155. The article of manufacture as recited in claim 151, wherein the pipe service discovers the information specifying the endpoint of the other peer node on the peer-to-peer network in accordance with a discovery protocol.
- 156. The article of manufacture as recited in claim 151, wherein the pipe service caches information specifying endpoints for one or more pipes including the pipe described in the pipe advertisement, wherein the message specifies if the pipe service is to retrieve the information specifying the endpoint of the other peer node from the cached information or if the pipe service is to discover the information specifying the endpoint of the other peer node on the peer-to-peer network in accordance with a discovery protocol.
- 157. The article of manufacture as recited in claim 151, wherein the message specifies the pipe service implemented on a particular one of the one or more peer nodes is to respond to the message.
- 158. The article of manufacture as recited in claim 147, wherein, in said obtaining the pipe advertisement, the software instructions are further executable to implement the peer node discovering the pipe advertisement on the peer-to-peer network in accordance with a discovery protocol.
- 159. The article of manufacture as recited in claim 147, wherein, in said obtaining the pipe advertisement, the software instructions are further executable to implement:
the peer node receiving a message including the pipe advertisement; and the peer node obtaining the pipe advertisement from the message including the pipe advertisement.
- 160. The article of manufacture as recited in claim 147, wherein, in said obtaining the pipe advertisement, the software instructions are further executable to implement the peer node obtaining a resource advertisement for a resource on the peer-to-peer network, wherein the pipe advertisement is included in the resource advertisement.
- 161. The article of manufacture as recited in claim 160, wherein the resource is one of the other peer node, a service implemented on the other peer node, an application implemented on the other peer node, and a peer group on the peer-to-peer network comprising one or more member peer nodes including the other peer node.
- 162. The article of manufacture as recited in claim 147, wherein the endpoint of the other peer node is associated with a service implemented on the other peer node, and wherein, in said communicating with the other peer node, the software instructions are further executable to implement the peer node communicating with the service on the other peer node over the pipe.
- 163. The article of manufacture as recited in claim 147, wherein the endpoint of the peer node is associated with a service implemented on the peer node, wherein the endpoint of the other peer node is associated with a service implemented on the other peer node, and wherein, in said communicating with the other peer node, the software instructions are further executable to implement the service on the peer node communicating with the service on the other peer node over the pipe.
- 164. The article of manufacture as recited in claim 147, wherein the endpoint of the peer node is associated with an application implemented on the other peer node, and wherein, in said communicating with the other peer node, the software instructions are further executable to implement the peer node communicating with the application on the other peer node over the pipe.
- 165. The article of manufacture as recited in claim 147, wherein the pipe is configured to provide unidirectional communications, wherein the endpoint of the other peer node is an output for sending messages to the peer node, and wherein the endpoint of the peer node is an input for receiving the messages.
- 166. The article of manufacture as recited in claim 147, wherein the pipe is configured to provide unidirectional communications, wherein the endpoint of the peer node is an output for sending messages to the other peer node, and wherein the endpoint of the other peer node is an input for receiving the messages.
- 167. The article of manufacture as recited in claim 166, wherein the pipe advertisement includes information for binding another endpoint of the other peer node corresponding to another pipe configured to provide unidirectional communications, wherein the software instructions are further executable to implement binding the pipe advertisement to another endpoint of the peer node, wherein the other endpoint of the peer node is an output for sending other messages to the other peer node and the other endpoint on the other peer node is an input for receiving the other messages.
- 168. The article of manufacture as recited in claim 147, wherein the pipe is configured to provide bidirectional communications, wherein, in said communicating, the software instructions are further executable to implement:
the peer node sending messages over the pipe to the endpoint of the other peer node; and the other peer node sending other messages over the pipe to the endpoint of the peer node.
- 169. The article of manufacture as recited in claim 147, wherein the pipe is configured to provide asynchronous communications.
- 170. The article of manufacture as recited in claim 147, wherein the pipe is configured to provide unreliable transmission of messages, wherein the messages transmitted by an output endpoint of the pipe are not guaranteed to be received at an input endpoint, and wherein each of the messages are transmitted one or more times on the pipe.
- 171. The article of manufacture as recited in claim 147, wherein the pipe is configured to provide stateless communications, wherein the endpoints of the pipe do not maintain states of the particular network transport protocol used on the pipe.
- 172. The article of manufacture as recited in claim 147, wherein one or more other endpoints on one or more other peer nodes are bound to the pipe advertisement, wherein the software instructions are farther executable to implement the peer node sending messages on the pipe to all endpoints currently bound to the pipe.
- 173. The article of manufacture as recited in claim 147, wherein the pipe passes through a different peer node on the peer-to-peer network, wherein, in said communicating, the software instructions are further executable to implement:
the peer node sending a message to the other peer node on the pipe; the different peer node receiving the message on an endpoint of the different peer node bound to the pipe; the different peer node transmitting the message on another endpoint of the different peer node bound to the pipe; and the other peer node receiving the message transmitted by the different peer node on the pipe.
- 174. The article of manufacture as recited in claim 147, wherein the pipe type is one of:
a reliable pipe, wherein on the pipe delivery of messages sent from an output endpoint to each of one or more input endpoints bound to the pipe advertisement is guaranteed, each of the messages is delivered only once to each of the one or more input endpoints, and ordering of the messages received at each of the one or more input endpoints is maintained; an unreliable pipe, wherein on the pipe delivery of the messages sent from an output endpoint to each of one or more input endpoints bound to the pipe advertisement is not guaranteed, each of the messages is delivered one or more times to each of the one or more input endpoints, and ordering of the messages received at each of one or more input endpoints is not guaranteed; and a secure pipe, wherein on the pipe messages to each of one or more input endpoints bound to the pipe advertisement are encrypted and delivery of the messages is reliable.
- 175. The article of manufacture as recited in claim 147, wherein the software instructions are further executable to implement:
unbinding the pipe advertisement from the endpoint of the other peer node; binding the pipe advertisement to an endpoint of a different peer node on the peer-to-peer network, wherein the endpoint of the different peer node corresponds to a network interface of the different peer node that implements the particular network transport protocol that supports the pipe type; and the peer node communicating with the different peer node over the pipe in accordance with the particular network transport protocol.
- 176. The article of manufacture as recited in claim 175, wherein a process executing within the peer node performs said communicating with the other peer node, wherein the execution of the process is not affected by said unbinding the pipe advertisement from the endpoint of the other peer node and said binding the pipe advertisement to the endpoint of the different peer node.
- 177. The article of manufacture as recited in claim 175, wherein the peer node is not aware of said unbinding the pipe advertisement from the endpoint of the other peer node and said binding the pipe advertisement to the endpoint of the different peer node.
- 178. The article of manufacture as recited in claim 147, wherein the peer node and the other peer node are member peers in a peer group.
- 179. An article of manufacture comprising software instructions executable within a peer node to implement:
the peer node receiving a message from another peer node on a peer-to-peer network in accordance with a pipe binding protocol, wherein the message identifies a pipe and specifies a network transport protocol of the pipe, wherein the pipe represents a virtual communications channel for communicating between the other peer node and one or more other peer nodes on the peer-to-peer network; the peer node obtaining information specifying an endpoint of a different peer node on the peer-to-peer network, wherein the endpoint of the different peer node corresponds to and uniquely identifies a network interface of the different peer node, wherein the network interface of the different peer node implements the network transport protocol of the pipe; and the peer node sending a response message to the other peer node in accordance with the pipe binding protocol, wherein the response message specifies the endpoint of the different peer node.
- 180. The article of manufacture as recited in claim 179, wherein the software instructions are further executable to implement:
establishing a communications channel between an endpoint of the peer node and the endpoint of the other peer node to instantiate the pipe between the peer node and the other peer node; and the other peer node communicating with the different peer node over the pipe through the endpoint of the different peer node.
- 181. The article of manufacture as recited in claim 180, wherein the message includes a pipe advertisement corresponding to the pipe, wherein the pipe advertisement identifies the pipe and specifies a pipe type of the pipe.
- 182. The article of manufacture as recited in claim 180, wherein the pipe type is one of:
a reliable pipe, wherein on the pipe delivery of messages sent from an output endpoint to each of one or more input endpoints bound to the pipe advertisement is guaranteed, each of the messages is delivered only once to each of the one or more input endpoints, and ordering of the messages received at each of the one or more input endpoints is maintained; an unreliable pipe, wherein on the pipe delivery of the messages sent from an output endpoint to each of one or more input endpoints bound to the pipe advertisement is not guaranteed, each of the messages is delivered one or more times to each of the one or more input endpoints, and ordering of the messages received at each of one or more input endpoints is not guaranteed; and a secure pipe, wherein the pipe type is secure, wherein on the pipe messages to each of one or more input endpoints bound to the pipe advertisement are encrypted and delivery of the messages is reliable.
- 183. The article of manufacture as recited in claim 180, wherein the software instructions are further executable to implement caching information specifying endpoints for one or more pipes including the pipe described in the pipe advertisement, and wherein, in said obtaining the information, the software instructions are further executable to implement the pipe service retrieving the information specifying the endpoint of the different peer node from the cached information.
- 184. The article of manufacture as recited in claim 179, wherein the software instructions are further executable to implement the peer node discovering the information specifying the endpoint of the peer-to-peer network in accordance with a discovery protocol.
- 185. The article of manufacture as recited in claim 179, wherein the software instructions are further executable to implement caching information specifying endpoints for one or more pipes including the pipe described in the pipe advertisement, wherein, in said obtaining the information specifying the endpoint of the different peer node, the software instructions are further executable to implement:
if the message indicates the peer node is to retrieve the information specifying the endpoint of the different peer node from the cached information, the peer node retrieving the information specifying the endpoint of the different peer node from the cached information; and if the message indicates the peer node is not to retrieve the information specifying the endpoint of the different peer node from the cached information, the peer node discovering the information specifying the endpoint of the peer-to-peer network in accordance with a discovery protocol.
- 186. The article of manufacture as recited in claim 179, wherein the message specifies only the peer node is to respond to the message.
- 187. The article of manufacture as recited in claim 179, wherein the peer node, the other peer node and the different peer node are member peers in a peer group.
PRIORITY INFORMATION
[0001] This application claims benefit of priority to the following provisional applications, each of which is hereby incorporated by reference in its entirety:
[0002] Serial No. 60/263,573 filed Jan. 22, 2001 titled Peer-to-Peer Network Computing Platform;
[0003] Serial No. 60/268,893 filed Feb. 14, 2001 titled Peer-to-Peer Network Computing Platform;
[0004] Serial No. 60/286,225 filed Apr. 24, 2001 titled Peer-to-Peer Network Computing Platform; and
[0005] Serial No. 60/308,932 filed Jul. 31, 2001 titled Trust Mechanism For A Peer-To-Peer Network Computing Platform.
Provisional Applications (4)
|
Number |
Date |
Country |
|
60263573 |
Jan 2001 |
US |
|
60268893 |
Feb 2001 |
US |
|
60286225 |
Apr 2001 |
US |
|
60308932 |
Jul 2001 |
US |