Claims
- 1. A peer-to-peer network system, comprising:
a plurality of peer nodes coupled to a network; a class of software module provided by one or more of the peer nodes; a module class advertisement for the class of software module that defines a local behavior and an Application Programming Interface (API) for each of one or more peer-to-peer bindings that supports the class of software module, wherein the module class advertisement includes a module class identifier that uniquely identifies the class of software module; and one or more module specification identifiers that each uniquely identifies one of one or more module specifications of the class of software module, wherein each module specification includes an indication of an expected on-wire behavior and one or more network protocols for a particular embodiment of the class of software module.
- 2. The peer-to-peer network system as recited in claim 1, wherein the module class advertisement further includes a role extension to the module class identifier for distinguishing two or more instances of the class of software module configured to perform different roles in a context.
- 3. The peer-to-peer network system as recited in claim 1, further comprising a module specification advertisement for each module specification, wherein each module specification advertisement includes a corresponding module specification identifier.
- 4. The peer-to-peer network system as recited in claim 3, wherein each module specification advertisement further includes one or more mechanisms to invoke and use the class of software module.
- 5. The peer-to-peer network system as recited in claim 1, further comprising one or more module implementations for each module specification of the class of software module, wherein each module implementation is configured to execute within a particular execution environment.
- 6. The peer-to-peer network system as recited in claim 5, wherein two or more module implementations of the class of software module configured to execute within a particular execution environment are configured to provide a common programming interface for execution within the particular execution environment.
- 7. The peer-to-peer network system as recited in claim 1, wherein the class of software module is configured to express one or more dependencies via the module class identifier for an execution environment and module specification selected during configuration of the execution environment.
- 8. The peer-to-peer network system as recited in claim 1, wherein the plurality of peer nodes are configured to participate in a peer-to-peer network environment in accordance with one or more peer-to-peer platform protocols for enabling the peer nodes to discover each other, communicate with each other, cooperate with each other to form peer groups, and to discover and access modules in the peer-to-peer network environment.
- 9. A system, comprising:
a processor; and a memory comprising program instructions, wherein the program instructions are executable by the processor to:
generate a module class advertisement for a class of software module hosted by the system on a peer-to-peer network, wherein the module class advertisement defines a local behavior and an Application Programming Interface (API) for each of one or more peer-to-peer bindings that supports the class of software module; assign a module class identifier to the class of software module that uniquely identifies the class of software module; and assign a different module specification identifier to each of one or more module specifications of the class of software module, wherein each module specification identifier uniquely identifies a corresponding module specification, and wherein each module specification indicates an expected on-wire behavior and one or more network protocols for a particular embodiment of the class of software module.
- 10. The system as recited in claim 9, wherein the program instructions are further executable by the processor to include the module class identifier in the module class advertisement.
- 11. The system as recited in claim 9, wherein the program instructions are further executable by the processor to:
generate a role extension to the module class identifier for distinguishing two or more instances of the class of software module configured to perform different roles in a context; and include the role extension to the module class identifier in the module class advertisement.
- 12. The system as recited in claim 9, wherein the program instructions are further executable by the processor to generate a module specification advertisement for each module specification, wherein each module specification advertisement includes a corresponding module specification identifier.
- 13. The system as recited in claim 12, wherein each module specification advertisement indicates one or more mechanisms to invoke and use the class of software module.
- 14. The system as recited in claim 9, wherein the program instructions are further executable by the processor to generate one or more module implementations for each module specification of the class of software module, wherein each module implementation is configured to execute within a particular execution environment.
- 15. The system as recited in claim 14, wherein the program instructions are further executable by the processor to provide a common programming interface for two or more module implementations of the class of software module configured to execute within a particular execution environment.
- 16. The system as recited in claim 9, wherein the class of software module is configured to express one or more dependencies via the module class identifier for an execution environment and module specification selected during configuration of the execution environment.
- 17. The system as recited in claim 9, wherein system is configured to participate as a peer node on the peer-to-peer network with one or more other peer nodes in a peer-to-peer network environment in accordance with one or more peer-to-peer platform protocols for enabling the peer nodes to discover each other, communicate with each other, cooperate with each other to form peer groups, and to discover and access modules in the peer-to-peer network environment.
- 18. A peer-to-peer network system, comprising:
means for advertising a local behavior and an Application Programming Interface (API) for each of one or more peer-to-peer bindings that supports a class of software module hosted by one or more peer nodes of the peer-to-peer network system; means for uniquely identifying the class of software module; and means for specifying an expected on-wire behavior and one or more network protocols for one or more embodiments of the class of software module.
- 19. The peer-to-peer network system as recited in claim 18, further comprising means for uniquely identifying each of the one or more module specifications of the class of software module.
- 20. The peer-to-peer network system as recited in claim 18, further comprising means for distinguishing two or more instances of the class of software module configured to perform different roles in a context.
- 21. The peer-to-peer network as recited in claim 18, further comprising means for providing one or more implementations for each of the one or more embodiments of the class of software module, wherein each implementation is configured to execute within a particular execution environment.
- 22. A method for describing and identifying abstract software modules, comprising:
one or more of a plurality of peers in a peer-to-peer network environment hosting a class of software module; generating a module class advertisement for the class of software module, wherein the module class advertisement defines a local behavior and an Application Programming Interface (API) for each of one or more peer-to-peer bindings that supports the class of software module; assigning a module class identifier to the class of software module that uniquely identifies the class of software module; and assigning a different module specification identifier to each of one or more module specifications of the class of software module, wherein each module specification identifier uniquely identifies a corresponding module specification, and wherein each module specification indicates an expected on-wire behavior and one or more network protocols for a particular embodiment of the class of software module
- 23. The method as recited in claim 22, further comprising including the module class identifier in the module class advertisement.
- 24. The method as recited in claim 22, further comprising:
generating a role extension to the module class identifier for distinguishing two or more instances of the class of software module configured to perform different roles in a context; and including the role extension to the module class identifier in the module class advertisement.
- 25. The method as recited in claim 22, further comprising generating a module specification advertisement for each module specification, wherein each module specification advertisement includes a corresponding module specification identifier.
- 26. The method as recited in claim 25, wherein each module specification advertisement further includes one or more mechanisms to invoke and use the class of software module.
- 27. The method as recited in claim 22, further comprising generating one or more module implementations for each module specification of the class of software module, wherein each module implementation is configured to execute within a particular execution environment.
- 28. The method as recited in claim 27, further comprising providing a common programming interface for two or more module implementations of the class of software module configured to execute within a particular execution environment.
- 29. The method as recited in claim 22, wherein the class of software module is configured to express one or more dependencies via the module class identifier for an execution environment and module specification selected during configuration of the execution environment.
- 30. The method as recited in claim 22, wherein the plurality of peers are configured to participate in the peer-to-peer network environment in accordance with one or more peer-to-peer platform protocols for enabling the peers to discover each other, communicate with each other, cooperate with each other to form peer groups, and to discover and access modules in the peer-to-peer network environment.
- 31. A computer-accessible medium comprising program instructions, wherein the program instructions are configured to implement:
generating a module class advertisement for a class of software module hosted by one or more of a plurality of peers in a peer-to-peer network environment, wherein the module class advertisement defines a local behavior and an Application Programming Interface (API) for each of one or more peer-to-peer bindings that supports the class of software module; assigning a module class identifier to the class of software module that uniquely identifies the class of software module; and assigning a different module specification identifier to each of one or more module specifications of the class of software module, wherein each module specification identifier uniquely identifies a corresponding module specification, and wherein each module specification indicates an expected on-wire behavior and one or more network protocols for a particular embodiment of the class of software module.
- 32. The computer-accessible medium as recited in claim 31, wherein the program instructions are further configured to implement including the module class identifier in the module class advertisement.
- 33. The computer-accessible medium as recited in claim 31, wherein the program instructions are further configured to implement:
generating a role extension to the module class identifier for distinguishing two or more instances of the class of software module configured to perform different roles in a context; and including the role extension to the module class identifier in the module class advertisement.
- 34. The computer-accessible medium as recited in claim 31, wherein the program instructions are further configured to implement generating a module specification advertisement for each module specification, wherein each module specification advertisement includes a corresponding module specification identifier.
- 35. The computer-accessible medium as recited in claim 34, wherein each module specification advertisement further includes one or more mechanisms to invoke and use the class of software module.
- 36. The computer-accessible medium as recited in claim 31, wherein the program instructions are further configured to implement generating one or more module implementations for each module specification of the class of software module, wherein each module implementation is configured to execute within a particular execution environment.
- 37. The computer-accessible medium as recited in claim 36, wherein the program instructions are further configured to implement providing a common programming interface for two or more module implementations of the class of software module configured to execute within a particular execution environment.
- 38. The computer-accessible medium as recited in claim 31, wherein the class of software module is configured to express one or more dependencies via the module class, identifier for an execution environment and module specification selected during configuration of the execution environment.
- 39. The computer-accessible medium as recited in claim 31, wherein the plurality of peers are configured to participate in the peer-to-peer network environment in accordance with one or more peer-to-peer platform protocols for enabling the peers to discover each other, communicate with each other, cooperate with each other to form peer groups, and to discover and access modules in the peer-to-peer network environment.
- 40. A peer-to-peer network system, comprising:
a plurality of peer nodes coupled to a network; a class of software module provided by one or more of the peer nodes; a module class advertisement for the class of software module that defines a local behavior and an Application Programming Interface (API) for each of one or more peer-to-peer bindings that supports the class of software module; one or more module specification advertisements for the module class advertisement, wherein each module specification advertisement describes a module specification including an expected on-wire behavior and a protocol of the class of software module; and one or more module implementation advertisements for each module specification advertisement, wherein each module implementation advertisement describes a particular module implementation of a corresponding module specification, wherein the module implementation is configured to execute within a particular execution environment.
- 41. The peer-to-peer network system as recited in claim 40, wherein each module specification advertisement further describes one or more mechanisms to invoke and use the corresponding class of software module.
- 42. The peer-to-peer network system as recited in claim 40, wherein the module class advertisement includes a module class identifier that uniquely identifies the class of software module.
- 43. The peer-to-peer network system as recited in claim 42, wherein the module class advertisement further includes a role extension to the module class identifier for distinguishing two or more instances of the class of software module configured to perform different roles in a context.
- 44. The peer-to-peer network system as recited in claim 40, wherein each module specification advertisement includes a module specification identifier that uniquely identifies the module specification corresponding to the module specification advertisement.
- 45. The peer-to-peer network system as recited in claim 40, wherein each module implementation advertisement includes a module specification identifier that uniquely identifies the module specification implemented by the module implementation advertisement.
- 46. The peer-to-peer network system as recited in claim 40, wherein each module implementation advertisement includes information indicating a mechanism for accessing code of the particular module implementation.
- 47. The peer-to-peer network system as recited in claim 40, wherein each module implementation advertisement is discoverable by peer nodes on the peer-to-peer network, and wherein the module implementation advertisements are configured for use by the peer nodes to implement corresponding module specifications in particular execution environments of the peer nodes.
- 48. The peer-to-peer network system as recited in claim 40, wherein the plurality of peer nodes are configured to participate in a peer-to-peer network environment in accordance with one or more peer-to-peer platform protocols for enabling the peer nodes to discover each other, communicate with each other, cooperate with each other to form peer groups, and to discover and access modules in the peer-to-peer network environment.
- 49. A system, comprising:
a processor; and a memory comprising program instructions, wherein the program instructions are executable by the processor to:
generate a module class advertisement for a class of software module hosted by the system that defines a local behavior and an Application Programming Interface (API) for each of one or more peer-to-peer bindings that supports the class of software module; generate one or more module specification advertisements for the module class advertisement, wherein each module specification advertisement describes a module specification including an expected on-wire behavior and a protocol of the class of software module; and generate one or more module implementation advertisements for each module specification advertisement, wherein each module implementation advertisement describes a particular module implementation of a corresponding module specification, wherein the module implementation is configured to execute within a particular execution environment.
- 50. The system as recited in claim 49, wherein each module specification advertisement further describes one or more mechanisms to invoke and use the corresponding class of software module.
- 51. The system as recited in claim 49, wherein the module class advertisement includes a module class identifier that uniquely identifies the class of software module.
- 52. The system as recited in claim 51, wherein the module class advertisement further includes a role extension to the module class identifier for distinguishing two or more instances of the class of software module configured to perform different roles in a context.
- 53. The system as recited in claim 49, wherein each module specification advertisement includes a module specification identifier that uniquely identifies the module specification corresponding to the module specification advertisement.
- 54. The system as recited in claim 49, wherein each module implementation advertisement includes a module specification identifier that uniquely identifies the module specification implemented by the module implementation advertisement.
- 55. The system as recited in claim 49, wherein each module implementation advertisement includes information indicating a mechanism for accessing code of the particular module implementation.
- 56. The system as recited in claim 49, wherein each module implementation advertisement is discoverable by one or more peer nodes on the peer-to-peer network, and wherein the module implementation advertisements are configured for use by the peer nodes to implement corresponding module specifications in particular execution environments of the peer nodes.
- 57. The system as recited in claim 49, wherein the system is a peer node configured to participate with other peer nodes in a peer-to-peer network environment in accordance with one or more peer-to-peer platform protocols for enabling the peer nodes to discover each other, communicate with each other, cooperate with each other to form peer groups, and to discover and access modules in the peer-to-peer network environment.
- 58. A peer-to-peer network system, comprising:
means for advertising a local behavior and an Application Programming Interface (API) for each of one or more peer-to-peer bindings that supports a class of software module hosted by one or more peer nodes of the peer-to-peer network system; means for advertising one or more module specifications of the class of software module, wherein each module specification indicates an expected on-wire behavior and a protocol of the class of software module; and means for advertising one or more module implementations for each module specification, wherein each module implementation is configured to execute within a particular execution environment.
- 59. The peer-to-peer network system as recited in claim 58, further comprising:
means for uniquely identifying the class of software module; means for uniquely identifying each of the one or more module specifications of the class of software module; and means for uniquely identifying the module specification implemented by each of the one or more module implementations.
- 60. The peer-to-peer network system as recited in claim 58, further comprising means for distinguishing two or more instances of the class of software module configured to perform different roles in a context.
- 61. A method for describing and identifying abstract software modules, comprising:
one or more of a plurality of peers in a peer-to-peer network environment hosting a class of software module; generating a module class advertisement for the class of software module, wherein the module class advertisement defines a local behavior and an Application Programming Interface (API) for each of one or more peer-to-peer bindings that supports the class of software module; generating a module specification advertisement for the module class advertisement, wherein the module specification advertisement describes a module specification including expected on-wire behavior and protocol of the class of software module; and generating a module implementation advertisement for the module specification advertisement, wherein the module implementation advertisement describes a module implementation of the module specification configured to execute within a particular execution environment.
- 62. The method as recited in claim 61, wherein the module specification advertisement further describes one or more mechanisms to invoke and use the class of software module.
- 63. The method as recited in claim 61, further comprising:
generating a module class identifier that uniquely identifies the class of software module; and including the module class identifier in the module class advertisement.
- 64. The method as recited in claim 63, further comprising generating a role extension to the module class identifier for distinguishing two or more instances of the class of software module configured to perform different roles in a context.
- 65. The method as recited in claim 61, further comprising:
generating a module specification identifier that uniquely identifies the module specification corresponding to the module specification advertisement; and including the module specification identifier in the module specification advertisement; and including the module specification identifier in the module implementation advertisement.
- 66. The method as recited in claim 61, wherein each module implementation advertisement is discoverable by peers on the peer-to-peer network, and wherein the module implementation advertisements are configured for use by the peers to implement corresponding module specifications in particular execution environments of the peers.
- 67. The method as recited in claim 61, wherein the plurality of peers are configured to participate in the peer-to-peer network environment in accordance with one or more peer-to-peer platform protocols for enabling the peers to discover each other, communicate with each other, cooperate with each other to form peer groups, and to discover and access modules in the peer-to-peer network environment.
- 68. A computer-accessible medium comprising program instructions, wherein the program instructions are configured to implement:
one or more of a plurality of peers in a peer-to-peer network environment hosting a class of software module; generating a module class advertisement for the class of software module, wherein the module class advertisement defines the local behavior and Application Programming Interface (API) for each of one or more peer-to-peer bindings that supports the class of software module; generating a module specification advertisement for the module class advertisement, wherein the module specification advertisement describes a module specification including expected on-wire behavior and protocol of the class of software module; and generating a module implementation advertisement for the module specification advertisement, wherein the module implementation advertisement describes a module implementation of the module specification configured to execute within a particular execution environment.
- 69. The computer-accessible medium as recited in claim 68, wherein the module specification advertisement further describes one or more mechanisms to invoke and use the class of software module.
- 70. The computer-accessible medium as recited in claim 68, wherein the program instructions are further configured to implement:
generating a module class identifier that uniquely identifies the class of software module; and including the module class identifier in the module class advertisement.
- 71. The computer-accessible medium as recited in claim 70, wherein the program instructions are further configured to implement generating a role extension to the module class identifier for distinguishing two or more instances of the class of software module configured to perform different roles in a context.
- 72. The computer-accessible medium as recited in claim 68, wherein the program instructions are further configured to implement:
generating a module specification identifier that uniquely identifies the module specification corresponding to the module specification advertisement; and including the module specification identifier in the module specification advertisement; and including the module specification identifier in the module implementation advertisement.
- 73. The computer-accessible medium as recited in claim 68, wherein each module implementation advertisement is discoverable by peers on the peer-to-peer network, and wherein the module implementation advertisements are configured for use by the peers to implement corresponding module specifications in particular execution environments of the peers.
- 74. The computer-accessible medium as recited in claim 68, wherein the plurality of peers are configured to participate in the peer-to-peer network environment in accordance with one or more peer-to-peer platform protocols for enabling the peers to discover each other, communicate with each other, cooperate with each other to form peer groups, and to discover and access modules in the peer-to-peer network environment.
PRIORITY INFORMATION
[0001] This application claims benefit of priority to provisional application Serial No. 60/401,928 filed Aug. 8, 2002 titled Abstracting Software Modules in a Peer-to-Peer Environment, which is hereby incorporated by reference in its entirety.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60401928 |
Aug 2002 |
US |