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 identifier that uniquely identifies the class of software module; 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 specifies an expected on-wire behavior and one or more network protocols for a particular embodiment of the class of software module; and one or more module implementation advertisements for each module specification, wherein each module implementation advertisement describes a particular module implementation of a corresponding module specification, wherein each module implementation is configured to execute within a particular execution environment.
- 2. The peer-to-peer network system as recited in claim 1, wherein each module implementation advertisement includes a module specification identifier that uniquely identifies the module specification implemented by the module implementation corresponding to the module implementation advertisement.
- 3. The peer-to-peer network system as recited in claim 1, wherein each module implementation advertisement includes an indication of a mechanism for accessing code of the particular module implementation.
- 4. The peer-to-peer network system as recited in claim 1, wherein each module implementation advertisement includes a description of the particular execution environment in which the corresponding module implementation is configured to execute.
- 5. The peer-to-peer network system as recited in claim 1, 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.
- 6. 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.
- 7. The peer-to-peer network system as recited in claim 1, wherein the module implementation advertisements are configured to be discovered by peer nodes on the peer-to-peer network for use by the peer nodes in implementing corresponding module specifications in particular execution environments of the peer nodes.
- 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:
assign a module class identifier to a class of software module hosted by the system on a peer-to-peer network, wherein the module class identifier uniquely identifies the class of software module; assign a 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; and generate one or more module implementation advertisements for each module specification, wherein each module implementation advertisement describes a particular module implementation of a corresponding module specification, wherein each module implementation is configured to execute within a particular execution environment.
- 10. The system as recited in claim 9, wherein each module implementation advertisement includes a module specification identifier that uniquely identifies the module specification implemented by the module implementation corresponding to the module implementation advertisement.
- 11. The system as recited in claim 9, wherein each module implementation advertisement includes an indication of a mechanism for accessing code of the particular module implementation.
- 12. The system as recited in claim 9, wherein each module implementation advertisement includes a description of the particular execution environment in which the corresponding module implementation is configured to execute.
- 13. The system as recited in claim 9, 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.
- 14. 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.
- 15. The system as recited in claim 9, wherein the module implementation advertisements are configured to be discovered by peer nodes on the peer-to-peer network for use by the peer nodes in implementing corresponding module specifications in particular execution environments of the peer nodes.
- 16. 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.
- 17. A peer-to-peer network system, comprising:
means for uniquely identifying a class of software module hosted by one or more peer nodes of the peer-to-peer network system; means for uniquely identifying each of 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.
- 18. The peer-to-peer network system as recited in claim 17, further comprising means for uniquely identifying the module specification implemented by each of the one or more module implementations.
- 19. A method for multiplatform implementation of an abstract software module, comprising:
one or more of a plurality of peers in a peer-to-peer network environment hosting a class of software module; assigning a module class identifier to the class of software module, wherein the module class identifier uniquely identifies the class of software module; assigning a 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; and generating one or more module implementation advertisements for each module specification, wherein each module implementation advertisement describes a particular module implementation of a corresponding module specification, wherein each module implementation is configured to execute within a particular execution environment.
- 20. The method as recited in claim 19, wherein each module implementation advertisement includes a module specification identifier that uniquely identifies the module specification implemented by the module implementation corresponding to the module implementation advertisement.
- 21. The method as recited in claim 19, wherein each module implementation advertisement includes an indication of a mechanism for accessing code of the particular module implementation.
- 22. The method as recited in claim 19, wherein each module implementation advertisement includes a description of the particular execution environment in which the corresponding module implementation is configured to execute.
- 23. The method as recited in claim 19, wherein the module implementation advertisements are configured to be discovered by peers on the peer-to-peer network for use by the peers in implementing corresponding module specifications in particular execution environments of the peers.
- 24. The method as recited in claim 19, 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.
- 25. The method as recited in claim 19, 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.
- 26. The method as recited in claim 19, 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.
- 27. 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; assigning a module class identifier to the class of software module, wherein the module class identifier uniquely identifies the class of software module; assigning a 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; and generating one or more module implementation advertisements for each module specification, wherein each module implementation advertisement describes a particular module implementation of a corresponding module specification, wherein each module implementation is configured to execute within a particular execution environment.
- 28. The computer-accessible medium as recited in claim 27, wherein each module implementation advertisement includes a module specification identifier that uniquely identifies the module specification implemented by the module implementation corresponding to the module implementation advertisement.
- 29. The computer-accessible medium as recited in claim 27, wherein each module implementation advertisement includes an indication of a mechanism for accessing code of the particular module implementation.
- 30. The computer-accessible medium as recited in claim 27, wherein each module implementation advertisement includes a description of the particular execution environment in which the corresponding module implementation is configured to execute.
- 31. The computer-accessible medium as recited in claim 27, wherein the module implementation advertisements are configured to be discovered by peers on the peer-topeer network for use by the peers in implementing corresponding module specifications in particular execution environments of the peers.
- 32. The computer-accessible medium as recited in claim 27, 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.
- 33. The computer-accessible medium as recited in claim 27, 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.
- 34. The computer-accessible medium as recited in claim 27, 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 |