System and method for describing and identifying abstract software modules in peer-to-peer network environments
First Claim
1. A peer-to-peer network system, comprising:
- a plurality of computers configured to implement 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, wherein the module class advertisement defines a local behavior and an Application Programming Interface (API) for each of a plurality of 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 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; and
a plurality of module specification identifiers that each uniquely identifies one of a plurality of module specifications of the class of software module, wherein each module specification includes an indication of an expected on-wire behavior and an indication of one or more network protocols for a particular embodiment of the class of software module.
2 Assignments
0 Petitions
Accused Products
Abstract
System and method for describing and identifying abstract software modules in peer-to-peer networking environments. A module class may have one or more module specifications. Each module specification may have one or more module implementations. A module class advertisement may be generated for the module class. A unique module class identifier may be assigned to the module class. A role extension to the module class identifier may be generated for each instance of the module class that performs a different role in a context. A unique module specification identifier may be assigned to each module specification of the module class. In one embodiment, a module specification advertisement may be generated for each module specification. In one embodiment, there may be one or more module implementations for each module specification. In one embodiment, a module implementation advertisement may be generated for each module implementation.
69 Citations
55 Claims
-
1. A peer-to-peer network system, comprising:
-
a plurality of computers configured to implement 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, wherein the module class advertisement defines a local behavior and an Application Programming Interface (API) for each of a plurality of 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 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; and a plurality of module specification identifiers that each uniquely identifies one of a plurality of module specifications of the class of software module, wherein each module specification includes an indication of an expected on-wire behavior and an indication of one or more network protocols for a particular embodiment of the class of software module. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. 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 two 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; 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; include the role extension to the module class identifier in the module class advertisement; and assign a different module specification identifier to each of a plurality of 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. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15)
-
-
16. 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 a plurality of 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; 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; including the role extension to the module class identifier in the module class advertisement; and assigning a different module specification identifier to each of a plurality of 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. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23)
-
-
24. A computer-accessible storage medium, comprising program instructions, wherein the program instructions are computer-executable 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 a plurality of 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; 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; including the role extension to the module class identifier in the module class advertisement; and assigning a different module specification identifier to each of a plurality of 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. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31)
-
-
32. A peer-to-peer network system, comprising:
-
a plurality of computers configured to implement 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, wherein the module class advertisement defines a local behavior and an Application Programming Interface (API) for each of a plurality of 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 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; a plurality of module specification advertisements for the module class advertisement, wherein each module specification advertisement describes a different 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. - View Dependent Claims (33, 34, 35, 36, 37, 38)
-
-
39. 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, wherein the module class advertisement defines a local behavior and an Application Programming Interface (API) for each of a plurality of 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 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; generate a plurality of module specification advertisements for the module class advertisement, wherein each module specification advertisement describes a different 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. - View Dependent Claims (40, 41, 42, 43, 44, 45)
-
-
46. 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 a plurality of peer-to-peer bindings that supports the class of software module; generating a module class identifier that uniquely identifies the class of software module; generating a module specification identifier that uniquely identifies the module specification; 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; including the module class identifier and the role extension to the module class identifier in the module class advertisement; generating a plurality of module specification advertisements for the module class advertisement, wherein each module specification advertisement describes a different module specification including expected on-wire behavior and protocol of the class of software module; and generating a module implementation advertisement for each module specification advertisement, wherein the module implementation advertisement describes a module implementation of a respective module specification configured to execute within a particular execution environment. - View Dependent Claims (47, 48, 49, 50)
-
-
51. A computer-accessible storage medium, comprising program instructions, wherein the program instructions are computer-executable 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 two or more peer-to-peer bindings that supports the class of software module; generating a module class identifier that uniquely identifies the class of software module; generating a module specification identifier that uniquely identifies the module specification; 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; including the module class identifier and the role extension to the module class identifier in the module class advertisement; generating a plurality of module specification advertisements for the module class advertisement, wherein each module specification advertisement describes a different module specification including expected on-wire behavior and protocol of the class of software module; and generating a module implementation advertisement for each module specification advertisement, wherein the module implementation advertisement describes a module implementation of a respective module specification configured to execute within a particular execution environment. - View Dependent Claims (52, 53, 54, 55)
-
Specification