Claims
- 1. A peer-to-peer network system, comprising:
a plurality of peers, wherein each peer comprises a network node configured to communicate with one or more other ones of said peers over one or more networks; a peer advertisement for each of said peers, wherein each peer advertisement comprises an identification of and communication address for a corresponding one of said peers; a plurality of peer services or content provided by one or more of said peers; and a service or content advertisement for each of said services or content, wherein each service or content advertisement comprises an identification of a corresponding service or content and an indication of how to access the corresponding service or content.
- 2. The peer-to-peer network system as recited in claim 1, wherein each peer advertisement is a programming language independent metadata document providing information about one of said peers.
- 3. The peer-to-peer network system as recited in claim 1, wherein one or more of said peer advertisements further comprises an indication of a service or content provided by the peer corresponding to that peer advertisement.
- 4. The peer-to-peer network system as recited in claim 3, wherein said indication of a service or content comprises one of said service or content advertisements.
- 5. The peer-to-peer network system as recited in claim 1, wherein each of said peer advertisements further comprises an endpoint advertisement, wherein said endpoint advertisement specifies said communication address for the corresponding peer and a transport protocol for the corresponding peer.
- 6. The peer-to-peer network system as recited in claim 1, further comprising:
a plurality of peer groups, wherein each peer group comprises a plurality of said peers; and a peer group advertisement for each said peer group, wherein each peer group advertisement comprises an identification of a corresponding peer group and an indication of a common set of services available to members of that peer group.
- 7. The peer-to-peer network system as recited in claim 6, wherein said indication of a common set of services comprises one of said service advertisements for each service of said common set of service.
- 8. The peer-to-peer network system as recited in claim 1, wherein said plurality of peer services or content comprises a plurality of peer services, and wherein each corresponding service advertisement comprises a pipe advertisement, wherein said pipe advertisement specifies a communication channel on which to send one or more messages to invoke the corresponding service.
- 9. The peer-to-peer network system as recited in claim 1, wherein one or more of said peers are configured to discover one or more of said peer, service or content advertisements in order to locate other peers, services or content in the peer-to-peer network system.
- 10. The peer-to-peer network system as recited in claim 9, wherein one or more of said peers are configured to:
send a discovery query message specifying a desired type of advertisement; and receive one or more advertisements in response to said discovery query message.
- 11. The peer-to-peer network system as recited in claim 1, wherein one or more of said peers are configured to publish their corresponding peer advertisements in the peer-to-peer network system to be discoverable by other peers.
- 12. The peer-to-peer network system as recited in claim 1, wherein one or more of said peers are configured to publish one or more of said service or content advertisements in the peer-to-peer network system to be discoverable by other peers.
- 13. The peer-to-peer network system as recited in claim 1, wherein each said peer advertisement and each said service or content advertisement is formatted according to a markup language schema defining elements of each type of advertisement.
- 14. The peer-to-peer network system as recited in claim 1, wherein said plurality of peer services or content comprises a first service and a plurality of different implementations of said first service for different platform types.
- 15. The peer-to-peer network system as recited in claim 14, further comprising a service class advertisement describing said first service and a service implementation advertisement for each implementation of said first service wherein each service implementation advertisement describes a corresponding one of said implementations of said first service.
- 16. The peer-to-peer network system as recited in claim 14, wherein one of said peers is configured to use an implementation of said first service supported by that peer's platform.
- 17. The peer-to-peer network system as recited in claim 14, wherein one of said implementations of said service is a Java implementation and another one of said implementations of said service is a native code implementation.
- 18. The peer-to-peer network system as recited in claim 1, wherein a first peer of said plurality of peers is implemented according to a first computing platform and wherein a first service of said plurality of services or content is implemented according to a second computing platform different from said first computing platform, wherein the corresponding service advertisement for said first service specifies a platform-independent method for accessing said first service so that said first peer can activate said first service.
- 19. The peer-to-peer network system as recited in claim 1, wherein one or more of said service or content advertisements comprises a time-to-live indicator, wherein the corresponding advertisement is deleted or invalidated when the time-to-live indicator expires.
- 20. The peer-to-peer network system as recited in claim 19, wherein said time-to-live indicator is decremented to reflect a current time-to-live when the corresponding advertisement is provided to another peer.
- 21. The peer-to-peer network system as recited in claim 1, wherein one or more of said peer advertisements comprises a security credential for authenticating the corresponding peer.
- 22. The peer-to-peer network system as recited in claim 21, wherein the security credential comprised by the peer advertisement for authenticating the corresponding peer is a public key signature.
- 23. The peer-to-peer network system as recited in claim 21, wherein one or more peers of the plurality of peers are configured to authenticate the security credentials comprised by peer advertisements.
- 24. The peer-to-peer network system as recited in claim 21, wherein one or more peers are configured to confirm that the identification and security credential comprised by a particular peer advertisement indicate the same peer to authenticate each of the plurality of peers.
- 25. A peer node, comprising:
a processor; a port operable to couple the peer node to a network; and a memory operable to store program instructions, wherein the program instructions are executable by the processor to:
discover advertisements for resources in a peer-to-peer network, wherein each resource advertisement comprises an identification of a corresponding resource and an indication of how to access the corresponding resource; and access said resources corresponding to said advertisements as indicated in said advertisements.
- 26. The peer node as recited in claim 25, wherein said resources include one or more of peers, peer groups, content, service classes, services, pipes, and pipe endpoints.
- 27. The peer node as recited in claim 25, wherein said resources include peer groups, wherein the program instructions are further executable to discover one or more of the advertisements corresponding to peer groups in the peer-to-peer network in order to locate the peer groups in the peer-to-peer network.
- 28. The peer node as recited in claim 25, wherein, in said discovering an advertisement, the program instructions are further executable to:
broadcast to other peer nodes a discovery query message specifying a type of resource; and receive in response to said discovery query message one or more advertisements for the desired type of resource.
- 29. The peer node as recited in claim 25, wherein the resources include other peers, wherein the program instructions are further executable to:
discover a peer advertisement corresponding to another peer node, wherein said peer advertisement comprises a pipe endpoint advertisement including an indication of a transport protocol; and communicate with said other peer node upon receiving said other peer node's peer advertisement.
- 30. The peer node as recited in claim 29, wherein, in said communicating, the program instructions are further executable to send messages to a communication address comprised by said pipe endpoint advertisement in accordance with the transport protocol indicated by said pipe endpoint advertisement.
- 31. The peer node as recited in claim 29, wherein, in said communicating, the program instructions are further executable to receive messages from a communication address comprised by said pipe endpoint advertisement in accordance with the transport protocol indicated by said pipe endpoint advertisement.
- 32. The peer node as recited in claim 25, wherein the resources include services, wherein the program instructions are further executable to access a service upon receiving said service's corresponding service advertisement.
- 33. The peer node as recited in claim 25, wherein the resources include service classes, wherein the program instructions are further executable to discover a service class advertisement, wherein said service class advertisement comprises one or more service implementation advertisements, and wherein each service implementation advertisement describes a corresponding service implementation for a different platform type.
- 34. The peer node as recited in claim 32, wherein the program instructions are further executable to access one of the service implementations for the peer node's platform type described by one of the one or more service implementation advertisements.
- 35. The peer node as recited in claim 33, wherein the service implementations include a Java implementation.
- 36. The peer node as recited in claim 33, wherein the service implementations include a native code implementation.
- 37. The peer node as recited in claim 25, wherein the resources include services, wherein, the peer node is implemented on a computing platform and wherein a particular service of the one or more discovered services is implemented on a different computing platform from the computing platform, wherein the service advertisement for the particular service specifies a platform-independent method for accessing the particular service to activate the particular service.
- 38. The peer node as recited in claim 25, wherein the resources include peers, wherein peer advertisements corresponding to the peers each comprise security credentials, and wherein the program instructions are further executable to authenticate a different peer node within the peer-to-peer network using a security credential from a peer advertisement corresponding to the different peer node.
- 39. A peer node, comprising:
a processor; a port operable to couple the peer node to a network; a memory operable to store program instructions, wherein the program instructions are executable by the processor to:
instantiate one or more services; generate a peer advertisement for the peer node, wherein said peer advertisement for the peer node comprises:
an identifier for the peer node; a pipe endpoint advertisement indicating where to send messages to the peer node; and one or more service advertisements, wherein each service advertisement corresponds to one of the one or more services instantiated on the peer node, and wherein each service advertisement indicates a mechanism for other peer nodes on the network to access the corresponding service.
- 40. The peer node as recited in claim 39, wherein the program instructions are further executable to publish the peer advertisement on the network, wherein said publishing makes the peer advertisement available for discovery by other peer nodes on the network.
- 41. The peer node as recited in claim 39, wherein the program instructions are further executable to:
receive a discovery query message including one or more criteria describing a resource, wherein the discovery query message is formatted in accordance with a discovery protocol; and send a response message in response to the discovery query message including one or more advertisements of resources that match the one or more criteria, wherein each of said one or more resource advertisements includes a description of how to access the corresponding resource, wherein the response message is formatted in accordance with the discovery protocol.
- 42. The peer node as recited in claim 41, wherein the resource is the peer node or another peer node.
- 43. The peer node as recited in claim 41, wherein the resource is at least one of the one or more services or one or more other services.
- 44. The peer node as recited in claim 41, wherein the resource is content.
- 45. The peer node as recited in claim 41, wherein the resource is a pipe.
- 46. The peer node as recited in claim 41, wherein the resource is a pipe endpoint.
- 47. The peer node as recited in claim 41, wherein the resource is a peer group.
- 48. The peer node as recited in claim 41, wherein, in said publishing, the program instructions are further executable to send the peer advertisement to one or more other peer nodes on the network.
- 49. The peer node as recited in claim 41, wherein, in said publishing, the program instructions are further executable to send the peer advertisement to one or more rendezvous peers on the network, wherein the one or more rendezvous peers are configured to cache advertisements for discovery on the network.
- 50. A peer-to-peer network system, comprising:
a plurality of peers, wherein each peer comprises a network node configured to communicate with one or more other ones of said peers over one or more networks; means for advertising each of said peers for discovery on said one or more networks, wherein said means for advertising each of said peers publishes an identifier for each of said peers, and wherein said means for advertising each of said peers further publishes a communication address corresponding to each of said peers on said one or more networks; a plurality of peer services or content provided by one or more of said peers; means for advertising services or content for discovery on said one or more networks, wherein said means for advertising said services or content publishes an identifier for each of said services or content, and wherein said means for advertising said services or content further publishes an indication of how to access each of said services or content on said one or more networks.
- 51. The peer-to-peer network system as recited in claim 50, wherein said means for advertising each of said peers further publishes an indication of particular services or content provided by each of said peers.
- 52. The peer-to-peer network system as recited in claim 50, wherein said means for advertising each of said peers further publishes one or more endpoints corresponding to each of said peers.
- 53. The peer-to-peer network system as recited in claim 50, further comprising:
a plurality of peer groups, wherein each peer group comprises a plurality of said peers; and means for advertising each of said plurality of peer groups for discovery on said one or more networks, wherein said means for advertising each of said plurality of peer groups publishes an identifier for each of said peer groups, and wherein said means for advertising each of said plurality of peer groups further publishes an indication of a particular common set of services available to members of each of said plurality of peer groups.
- 54. The peer-to-peer network system as recited in claim 50, further comprising means for advertising communication channels on which to send messages to invoke each of said services.
- 55. The peer-to-peer network system as recited in claim 50, wherein said plurality of peer services or content comprises a first service and a plurality of different implementations of said first service for different platform types, wherein one of said peers is configured to use an implementation of said first service supported by that peer's particular platform.
- 56. The peer-to-peer network system as recited in claim 50, wherein said plurality of services or content comprises a plurality of services, wherein said means for advertising said services or content further publishes a platform-independent method for accessing one or more of said plurality of services.
- 57. A method, comprising:
generating a peer advertisement for a peer in a peer-to-peer network, wherein the peer advertisement comprises an identifier for the peer and a communication address for the peer; generating a service advertisement for each of one or more of services provided by the peer, wherein each service advertisement comprises an identifier for the corresponding service and an indication of how to access the corresponding service; generating a content advertisement for each of one or more of content provided by the peer, wherein each content advertisement comprises an identifier for the corresponding content and an indication of how to access the corresponding content; and publishing the peer advertisement in the peer-to-peer network to be discoverable by other peers.
- 58. The method as recited in claim 57, wherein the peer advertisement is a programming language independent metadata document providing information about the peer.
- 59. The method as recited in claim 57, wherein the peer advertisement indicates the one or more services provided by the peer.
- 60. The method as recited in claim 57, further comprising including one or more of said service advertisements in the peer advertisement.
- 61. The method as recited in claim 57, wherein the peer advertisement further comprises an endpoint advertisement, wherein said endpoint advertisement includes said communication address for the peer and a transport protocol for the peer.
- 62. The method as recited in claim 57, further comprising:
the peer cooperating with one or more other peers to form a peer group, wherein the peer group comprises the peer and the one or more other peers as member peers; and generating a peer group advertisement for the peer group, wherein the peer group advertisement comprises an identifier for the peer group and an indication of a common set of services available to the member peers of the peer group.
- 63. The method as recited in claim 57, wherein said indication of the common set of services comprises a service advertisement for each service of said common set of services.
- 64. The method as recited in claim 57, wherein each service advertisement comprises a pipe advertisement, wherein said pipe advertisement includes a communication channel on which to send one or more messages to invoke the particular service.
- 65. The method as recited in claim 57, further comprising the peer locating other peers, services, or content in the peer-to-peer network by discovering one or more peer, service, or content advertisements published on the network.
- 66. The method as recited in claim 65, wherein said discovering comprises:
sending a discovery query message specifying a particular type of advertisement; receiving one or more advertisements corresponding to the particular type of advertisement in response to said discovery query message.
- 67. The method as recited in claim 57, further comprising publishing one or more of said service advertisements in the peer-to-peer network for discovery by other peers.
- 68. The method as recited in claim 57, further comprising publishing one or more of said content advertisements in the peer-to-peer network for discovery by other peers.
- 69. The method as recited in claim 57, wherein the peer advertisements, the service advertisements, and the content advertisements are each formatted according to a markup language schema defining elements of the particular type of advertisement.
- 70. The method as recited in claim 57, wherein the services include a plurality of implementations of a particular service each configured to support a different platform type.
- 71. The method as recited in claim 70, further comprising a service class advertisement describing the particular service and a service implementation advertisement for each implementation of the particular service.
- 72. The method as recited in claim 70, further comprising another peer in the peer-to-peer network using one of the implementations of said first service that is configured to support the other peer's particular platform type.
- 73. The method as recited in claim 70, wherein the particular implementations of the particular service include a Java implementation and a native code implementation.
- 74. The method as recited in claim 57, wherein the peer is implemented on a computing platform, the method further comprising:
discovering a service advertisement for a service on another peer, wherein the other peer is implemented on a different computing platform; and activating the service using a platform-independent method specified by the service advertisement corresponding to the service.
- 75. The method as recited in claim 57, wherein one or more of said service or content advertisements each comprises a time-to-live indicator, the method further comprising deleting or invalidating a service advertisement or content advertisement when a time-to-live indicator comprised in the service advertisement or the content advertisement expires.
- 76. The method as recited in claim 57, wherein the peer advertisement includes a security credential, the method further comprising:
the peer receiving a peer advertisement corresponding to another peer; and the peer authenticating the other peer using the other peer's security credential from the received peer advertisement.
- 77. The method as recited in claim 76, wherein the security credential is a public key signature.
- 78. The method as recited in claim 76, wherein said authenticating comprises confirming that the identifier and security credential comprised by a particular peer advertisement indicate the same peer corresponding to the peer advertisement.
- 79. A method for discovering resources in a peer-to-peer network, the method comprising:
a peer node broadcasting a discovery query message specifying a type of resource on the network; and the peer node receiving one or more advertisements for the specified type of resource in response to said discovery query message; wherein each advertisement is a programming language independent metadata document formatted in accordance with a peer-to-peer protocol.
- 80. The method as recited in claim 79, wherein each advertisement is an XML document.
- 81. The method as recited in claim 79, wherein the discovery query message specifies peer nodes as the resource type.
- 82. The method as recited in claim 79, wherein the discovery query message specifies services as the resource type, wherein the service advertisement includes an input endpoint advertisement specifying a transport protocol for sending messages to an input communication address comprised by the endpoint advertisement in accordance with the transport protocol, wherein the service advertisement includes an output endpoint advertisement specifying a transport protocol for receiving messages from an output communication address comprised by the output endpoint advertisement in accordance with the transport protocol.
- 83. The method as recited in claim 79, wherein the discovery query message specifies content as the resource type.
- 84. The method as recited in claim 79, wherein the discovery query message specifies pipes as the resource type.
- 85. The method as recited in claim 79, wherein the discovery query message specifies pipe endpoints as the resource type.
- 86. The method as recited in claim 79, wherein the discovery query message specifies peer groups as the resource type.
- 87. The method as recited in claim 79, wherein the resource type specifies one of a peer node, a peer group, a pipe, a pipe endpoint, content, or a service.
- 88. The method as recited in claim 79, wherein the resources are services, wherein one of the one or more advertisements include a service class advertisement, wherein said service class advertisement comprises one or more service implementation advertisements, wherein each service implementation advertisement describes a different service implementation specific to a different computing platform.
- 89. The method as recited in claim 88, further comprising the peer node accessing a service implementation described by one of the one or more service implementation advertisements, wherein the service implementation is specific to the peer node's particular computing platform.
- 90. The method as recited in claim 89, wherein the service implementation is a Java implementation.
- 91. The method as recited in claim 89, wherein the service implementation is a native code implementation.
- 92. The method as recited in claim 88, wherein the peer node is implemented on a computing platform, wherein the resources are services, wherein the advertisements include a service advertisement specifying a platform independent method for accessing a particular service implemented on a different computing platform, the method further comprising the peer node activating the service using the platform independent method specified by the service advertisement.
- 93. The method as recited in claim 79, wherein the discovery query message specifies peers as the resource type, wherein the advertisements are peer advertisements comprising security credentials, the method further comprising the peer node authenticating another peer within the peer-to-peer network using a security credential from a discovered peer advertisement corresponding to the other peer.
- 94. A method, comprising:
a peer node on a network instantiating one or more services; the peer node generating a peer advertisement in accordance with a peer-to-peer platform discovery protocol; and the peer node publishing the peer advertisement in the peer-to-peer network for discovery by other peer nodes on the network, wherein the peer advertisement is a programming language independent metadata document formatted in accordance with the peer-to-peer platform discovery protocol.
- 95. The method as recited in claim 94, further comprising:
the peer node including an identifier for the peer node in the peer advertisement; the peer node including a pipe endpoint advertisement indicating where to send messages to the peer node in the peer advertisement; and the peer node including one or more service advertisements in the peer advertisement, wherein each service advertisement corresponds to one of the one or more services instantiated on the peer node, and wherein each service advertisement includes information indicating a mechanism for other peers on the network to access the corresponding service; and
- 96. The method as recited in claim 94, wherein the peer advertisement is an XML document.
- 97. The method as recited in claim 94, further comprising:
the peer node receiving a discovery query message including criteria specifying peer nodes that the other peer is interested in discovering, wherein the discovery query message is formatted in accordance with the peer-to-peer platform discovery protocol; and if the criteria matches the peer node, the peer node sending a response message, wherein the response message includes the peer advertisement, wherein the peer advertisement includes a description of how to access the peer node, and wherein the response message is formatted in accordance with the peer-to-peer platform discovery protocol.
- 98. The method as recited in claim 94, wherein said publishing comprises the peer node sending the peer advertisement to one or more other peers on the network.
- 99. The method as recited in claim 94, wherein said publishing comprises the peer node sending the peer advertisement to one or more rendezvous peers on the network, wherein the one or more rendezvous peers cache advertisements for discovery by other peers.
- 100. An article of manufacture comprising program instructions, wherein the program instructions are computer-executable to implement:
generating a peer advertisement for a peer in a peer-to-peer network, wherein the peer advertisement comprises an identifier for the peer and a communication address for the peer; generating a service advertisement for each of one or more of services provided by the peer, wherein each service advertisement comprises an identifier for the corresponding service and an indication of how to access the corresponding service; generating a content advertisement for each of one or more of content provided by the peer, wherein each content advertisement comprises an identifier for the corresponding content and an indication of how to access the corresponding content; and publishing the peer advertisement in the peer-to-peer network to be discoverable by other peers.
- 101. The article of manufacture as recited in claim 100, wherein the program instructions are further executable to:
the peer cooperating with one or more other peers to form a peer group, wherein the peer group comprises the peer and the one or more other peers as member peers; and generating a peer group advertisement for the peer group, wherein the peer group advertisement comprises an identifier for the peer group and an indication of a common set of services available to the member peers of the peer group.
- 102. The article of manufacture as recited in claim 100, wherein the program instructions are further executable to locate other peers, services, or content in the peer-to-peer network by discovering one or more peer, service, or content advertisements published on the network.
- 103. The article of manufacture as recited in claim 102, wherein said discovering comprises:
sending a discovery query message specifying a particular type of advertisement; receiving one or more advertisements corresponding to the particular type of advertisement in response to said discovery query message.
- 104. The article of manufacture as recited in claim 100, wherein the program instructions are further executable to publish one or more of said service advertisements in the peer-to-peer network for discovery by other peers.
- 105. The article of manufacture as recited in claim 100, wherein the program instructions are further executable to publish one or more of said content advertisements in the peer-to-peer network for discovery by other peers.
- 106. The article of manufacture as recited in claim 100, wherein the services include a plurality of implementations of a particular service each configured to support a different platform type.
- 107. The article of manufacture as recited in claim 100, wherein the program instructions are further executable to describe a particular service and generate a service implementation advertisement for each implementation of the particular service through a corresponding service advertisement.
- 108. The article of manufacture as recited in claim 100, wherein the program instructions are further executable to access one of the implementations of a service that is configured to support a particular computing platform type.
- 109. The article of manufacture as recited in claim 100, wherein the program instructions are further executable to:
discover a service advertisement for a service on a peer, wherein the peer is implemented on a particular computing platform; and activate the service using a platform-independent method specified by the service advertisement corresponding to the service.
- 110. A carrier medium comprising program instructions, wherein the program instructions are computer-executable to implement:
a peer node broadcasting a discovery query message specifying a type of resource on the network; and the peer node receiving one or more advertisements for the specified type of resource in response to said discovery query message; wherein each advertisement is a programming language independent metadata document formatted in accordance with a peer-to-peer protocol.
- 111. A carrier medium comprising program instructions, wherein the program instructions are computer-executable to implement:
a peer node on a network instantiating one or more services; the peer node generating a peer advertisement in accordance with a peer-to-peer platform discovery protocol; and the peer node publishing the peer advertisement in the peer-to-peer network for discovery by other peer nodes on the network, wherein the peer advertisement is a programming language independent metadata document formatted in accordance with the peer-to-peer platform discovery protocol.
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] Ser. No. 60/263,573 filed Jan. 22, 2001 titled Peer-to-Peer Network Computing Platform;
[0003] Ser. No. 60/268,893 filed Feb. 14, 2001 titled Peer-to-Peer Network Computing Platform;
[0004] Ser. No. 60/286,225 filed Apr. 24, 2001 titled Peer-to-Peer Network Computing Platform; and
[0005] Ser. 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 |