Claims
- 1. A method comprising:
creating a device template using a template language written in XML syntax; and defining, from the device template, a device description for a self-describing network device.
- 2. A method as recited in claim 1, wherein the template language is derived from XML schema.
- 3. A method as recited in claim 1, wherein the self-describing network device comprises a universal plug and play device.
- 4. A method as recited in claim 1, further comprising storing the device description on a computer-readable medium.
- 5. A method as recited in claim 1, further comprising:
creating a service template from a template language written in XML syntax; and defining, from the service template, a service description for a service supported by the self-describing network device.
- 6. A method as recited in claim 1, further comprising automatically evaluating, via a computer software tool, whether the device description is well formed.
- 7. A method comprising:
creating a service template from a template language written in XML syntax; and defining, from the service template, a service description for a service supported by a self-describing network device.
- 8. A method as recited in claim 7, wherein the template language is derived from XML schema.
- 9. A method as recited in claim 7, wherein the self-describing network device comprises a universal plug and play device.
- 10. A method as recited in claim 7, further comprising storing the service description on a computer-readable medium.
- 11. A method as recited in claim 7, further comprising automatically evaluating, via a computer software tool, whether the device description is well formed.
- 12. A method comprising:
creating a device template for a self-describing network device, the device template being written in an XML-based language; and instantiating the device template with vendor-specific information to form a device description of the self-describing network device.
- 13. A method of describing a universal plug and play device, comprising:
storing a description of the self-describing network device, the description comprising a set of elements to describe the self-describing network device and an XML-based syntax that structures the set of elements such that, when the data structure is read by a computing device, the computing device can learn about the self-describing network device; and making the description available to the computing device.
- 14. A method as recited in claim 13, wherein the storing comprises storing the description at the self-describing network device.
- 15. A method as recited in claim 13, wherein the self-describing network device comprises a universal plug and play device.
- 16. A method as recited in claim 13, wherein the set of elements includes at least one of:
a first element to identify one or more versions of the template language; a second element to identify the self-describing network device; and a third element to specify a base universal resource locator (URL).
- 17. A method as recited in claim 16, wherein the second element includes at least one of:
a first subelement to specify a type of self-describing network device; a second subelement to identify a user; a third subelement to identify a manufacturer; a fourth subelement to specify a URL of a website for the manufacturer; a fifth subelement to provide a word description of the self-describing network device for the user; a sixth subelement to specify a model name of the self-describing network device; a seventh subelement to specify a model number of the self-describing network device; an eighth subelement to specify a URL of a website for the self-describing network device; a ninth subelement to specify a URL of a website for a presentation hosted by the self-describing network device; a tenth subelement to specify a serial number of the self-describing network device; an eleventh subelement to specify a universal device name of the self-describing network device; a twelfth subelement to specify a universal product code of the self-describing network device; a thirteenth subelement to specify any icons associated with the self-describing network device; a fourteenth subelement to identify any of one or more services supported by the self-describing network device; and a fifteenth subelement to identify any of one or more devices embedded within the self-describing network device.
- 18. A method as recited in claim 13, further comprising storing a set of elements to describe at least one service supported by the self-describing network device.
- 19. A method as recited in claim 18, wherein the set of elements to describe the service includes at least one of:
a first element to identify any of one or more actions performed by the service; and a second element to identify any of one or more state variables in the service.
- 20. A method as recited in claim 19, wherein the first element includes at least one subelement for each corresponding action, the subelement containing a name string to hold a name of the action and an argument list to hold parameters of the action.
- 21. A method as recited in claim 19, wherein the second element includes at least one of:
a first subelement to identify a name of a state variable; a second subelement to specify a data type of the state variable; a third subelement to specify a default value of the state variable; a fourth subelement to enumerate legal string values; and a fifth subelement to define bounds of legal numeric values.
- 22. A method as recited in claim 13, wherein the storing comprises storing the description at the self-describing network device, the method further comprising storing a set of elements to describe at least one service supported by the self-describing network device at a location remote from the self-describing network device.
- 23. A data structure stored on a computer-readable medium, the data structure being constructed according to an XML-based template language, the data structure comprising:
a set of elements to describe a self-describing network device; and an XML-based syntax that organizes and structures the set of elements such that, when the data structure is read by a computing device, the computing device can learn about the self-describing network device.
- 24. A data structure stored as recited in claim 23, wherein the set of elements requires:
a first element to identify one or more versions of the template language; and a second element to identify the self-describing network device.
- 25. A data structure stored as recited in claim 23, wherein the set of elements includes at least one of:
a first element to identify one or more versions of the template language; a second element to identify the self-describing network device; and a third element to specify a base universal resource locator (URL).
- 26. A data structure stored as recited in claim 25, wherein the second element includes at least one of:
a first subelement to specify a type of self-describing network device; a second subelement to identify a user; a third subelement to identify a manufacturer; a fourth subelement to specify a URL of a website for the manufacturer; a fifth subelement to provide a word description of the self-describing network device for the user; a sixth subelement to specify a model name of the self-describing network device; a seventh subelement to specify a model number of the self-describing network device; an eighth subelement to specify a URL of a website for the self-describing network device; a ninth subelement to specify a URL of a website for a presentation hosted by the self-describing network device; a tenth subelement to specify a serial number of the self-describing network device; an eleventh subelement to specify a universal device name of the self-describing network device; a twelfth subelement to specify a universal product code of the self-describing network device; a thirteenth subelement to specify any icons associated with the self-describing network device; a fourteenth subelement to identify any of one or more services supported by the self-describing network device; and a fifteenth subelement to identify any of one or more devices embedded within the self-describing network device.
- 27. A data structure stored on a computer-readable medium, the data structure being constructed according to an XML-based template language, the data structure comprising:
a set of elements to describe a service supported by a self-describing network device; and an XML-based syntax that organizes and structures the set of elements such that, when the data structure is read by a computing device, the computing device can learn about the service supported by the self-describing network device.
- 28. A data structure stored as recited in claim 27, wherein the set of elements includes at least one of:
a first element to identify any of one or more actions performed by the service; and a second element to identify any of one or more state variables in the service.
- 29. A data structure stored as recited in claim 28, wherein the first element includes at least one subelement for each corresponding action, the subelement containing at least one of a name string to hold a name of the action, an argument list to hold parameters of the action, and a data type of the parameters.
- 30. A data structure stored as recited in claim 28, wherein the second element includes at least one of:
a first subelement to identify a name of a state variable; a second subelement to specify a data type of the state variable; a third subelement to specify a default value of the state variable; a fourth subelement to enumerate legal string values; and a fifth subelement to define bounds of legal numeric values.
- 31. One or more computer-readable media, comprising stored thereon:
a first set of elements to describe a self-describing network device, the first set of elements being written in an XML syntax; a second set of elements to describe a service supported by the self-describing network device, the second set of elements being written in an XML syntax; and a code segment that, when executed, returns the first set of elements and at least a reference to the second set of elements to an entity requesting a description of the self-describing network device.
- 32. One or more computer-readable media as recited in claim 31, wherein the first set of elements are stored on a computer-readable media located at the self-describing network device and the second set of elements are stored on a separate computer-readable medium located remotely from the self-describing network device, but accessible via a network.
- 33. One or more computer-readable media as recited in claim 31, wherein the first set of elements includes at least one of:
a first element to identify one or more versions of the template language; a second element to identify the self-describing network device; and a third element to specify a base universal resource locator (URL).
- 34. One or more computer-readable media as recited in claim 31, wherein the second element of the first set of elements includes at least one of:
a first subelement to specify a type of self-describing network device; a second subelement to identify a user; a third subelement to identify a manufacturer; a fourth subelement to specify a URL of a website for the manufacturer; a fifth subelement to provide a word description of the self-describing network device for the user; a sixth subelement to specify a model name of the self-describing network device; a seventh subelement to specify a model number of the self-describing network device; an eighth subelement to specify a URL of a website for the self-describing network device; a ninth subelement to specify a URL of a website for a presentation hosted by the self-describing network device; a tenth subelement to specify a serial number of the self-describing network device; an eleventh subelement to specify a universal device name of the self-describing network device; a twelfth subelement to specify a universal product code of the self-describing network device; a thirteenth subelement to specify any icons associated with the self-describing network device; a fourteenth subelement to identify any of one or more services supported by the self-describing network device; and a fifteenth subelement to identify any of one or more devices embedded within the self-describing network device.
- 35. One or more computer-readable media as recited in claim 31, wherein the second set of elements includes at least one of:
a first element to identify any of one or more actions performed by the service; and a second element to identify any of one or more state variables in the service.
- 36. One or more computer-readable media as recited in claim 35, wherein the first element of the second set of elements includes at least one subelement for each corresponding action, the subelement containing a name string to hold a name of the action and an argument list to hold parameters of the action.
- 37. One or more computer-readable media as recited in claim 35, wherein the second element of the second set of elements includes at least one of:
a first subelement to identify a name of a state variable; a second subelement to specify a data type of the state variable; a third subelement to specify a default value of the state variable; a fourth subelement to enumerate legal string values; and a fifth subelement to define bounds of legal numeric values.
- 38. One or more computer-readable media as recited in claim 31, wherein the code segment is configured to respond to an HTTP GET request by returning the description in a body of an HTTP response.
- 39. A self-describing network device comprising:
a memory; a description of the self-describing network device stored in the memory, the description comprising a set of elements written in an XML syntax to describe the self-describing network device; and a processor coupled to the memory to submit the description to a remote entity on a network.
- 40. A self-describing network device as recited in claim 39, wherein the description data comprises a first set of elements a first set of elements to describe the self-describing network device and a second set of elements to describe a service supported by the self-describing network device.
- 41. A self-describing network device as recited in claim 39, wherein the set of elements comprises at least one of:
a first element to identify one or more versions of the template language; a second element to identify the self-describing network device; and a third element to specify a base universal resource locator (URL).
- 42. A self-describing network device as recited in claim 41, wherein the second element includes at least one of:
a first subelement to specify a type of self-describing network device; a second subelement to identify a user; a third subelement to identify a manufacturer; a fourth subelement to specify a URL of a website for the manufacturer; a fifth subelement to provide a word description of the self-describing network device for the user; a sixth subelement to specify a model name of the self-describing network device; a seventh subelement to specify a model number of the self-describing network device; an eighth subelement to specify a URL of a website for the self-describing network device; a ninth subelement to specify a URL of a website for a presentation hosted by the self-describing network device; a tenth subelement to specify a serial number of the self-describing network device; an eleventh subelement to specify a universal device name of the self-describing network device; a twelfth subelement to specify a universal product code of the self-describing network device; a thirteenth subelement to specify any icons associated with the self-describing network device; a fourteenth subelement to identify any of one or more services supported by the self-describing network device; and a fifteenth subelement to identify any of one or more devices embedded within the self-describing network device.
- 43. A self-describing network device as recited in claim 39, wherein the set of elements includes at least one of:
a first element to identify any of one or more actions performed by a service supported by the self-describing network device; and a second element to identify any of one or more state variables in the service.
- 44. A self-describing network device as recited in claim 43, wherein the first element includes at least one subelement for each corresponding action, the subelement containing a name string to hold a name of the action and an argument list to hold parameters of the action.
- 45. A self-describing network device as recited in claim 43, wherein the second element includes at least one of:
a first subelement to identify a name of a state variable; a second subelement to specify a data type of the state variable; a third subelement to specify a default value of the state variable; a fourth subelement to enumerate legal string values; and a fifth subelement to define bounds of legal numeric values.
- 46. A self-describing network device comprising:
storage means for storing a description of the self-describing network device, the description comprising a set of elements to describe the self-describing network device and an XML-based syntax that structures the set of elements such that, when the data structure is read by another computing device, the computing device can learn about the self-describing network device; and responsive means for making the description available to another computing device.
RELATED APPLICATION DATA
[0001] This is a continuation-in-part of U.S. Patent Application Serial No. 09/496,318, entitled “Dynamic Self-Configuration For Ad Hoc Peer Networking”, filed Feb. 1, 2000, which is based on provisional application number 60/139,137 filed Jun. 11, 1999, and provisional application number 60/160,235 filed Oct. 18, 1999. This also claims priority to provisional application number 60/190,943, filed Mar. 21, 2000, which is hereby incorporated by reference.
Provisional Applications (3)
|
Number |
Date |
Country |
|
60139137 |
Jun 1999 |
US |
|
60160235 |
Oct 1999 |
US |
|
60190943 |
Mar 2000 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
09496318 |
Feb 2000 |
US |
Child |
09811362 |
Mar 2001 |
US |