IP Library Granted Patent US 7,441,019
Granted Patent B2
US 7,441,019 · App. 10/981,030 · Granted Oct 21, 2008

XML-based template language for devices and services

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,441,019
App. No.
10/981,030
Granted
Oct 21, 2008
Kind
B2
Abstract

A universal plug and play (UPnP) device makes itself known through a set of processes—discovery, description, control, eventing, and presentation. Following discovery of a UPnP device, an entity can learn more about the device and its capabilities by retrieving the device's description. The description includes vendor-specific manufacturer information like the model name and number, serial number, manufacturer name, URLs to vendor-specific Web sites, etc. The description also includes a list of any embedded devices or services, as well as URLs for control, eventing, and presentation. The description is written by a vendor, and is usually based on a device template produced by a UPnP forum working committee. The template is derived from a template language that is used to define elements to describe the device and any services supported by the device. The template language is written using an XML-based syntax that organizes and structures the elements.

Claims (140)

1. A system comprising:

means for creating a device template using a template language written in XML syntax;

means for defining, from the device template, a device description for a self-describing network device; and

means for automatically evaluating, via a computer software tool, whether the device description is well formed.

2. A system as recited in claim 1 , wherein the template language is derived from XML schema.

3. A system as recited in claim 1 , wherein the self-describing network device comprises a universal plug and play device.

4. A system as recited in claim 1 , further comprising means for storing the device description on a computer-readable medium.

5. A system as recited in claim 1 , further comprising:

means for creating a service template from a template language written in XML syntax; and

means for defining, from the service template, a service description for a service supported by the self-describing network device.

6. A system comprising:

means for creating a service template from a template language written in XML syntax;

means for defining, from the service template, a service description for a service supported by a self-describing network device; and

automatically evaluating, via a computer software tool, whether the service description is well formed.

7. A system as recited in claim 6 , wherein the template language is derived from XML schema.

8. A system as recited in claim 6 , wherein the self-describing network device comprises a universal plug and play device.

9. A system as recited in claim 6 , further comprising means for storing the service description on a computer-readable medium.

10. A system, comprising:

means for storing a description of a 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, wherein the set of elements includes at least one of:

a first element to identify one or more versions of a template language used to define the description;

a second element to identify the self-describing network device; and

a third element to specify a base universal resource locator (URL); and

means for making the description available to the computing device.

11. A system as recited in claim 10 , wherein the storing means comprises computer-readable media located at the self-describing network device.

12. A system as recited in claim 10 , wherein the self-describing network device comprises a universal plug and play device.

13. A system as recited in claim 10 , 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.

14. A system as recited in claim 10 , further comprising means for storing a set of elements to describe at least one service supported by the self-describing network device.

15. A system as recited in claim 14 , 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.

16. A system as recited in claim 15 , 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.

17. A system as recited in claim 15 , 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.

18. A system as recited in claim 10 , wherein the storing means comprises computer-readable media located at the self-describing network device, and further comprising means for 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.

19. A system comprising:

storage means for storing a first set of elements to describe a self-describing network device and a second set of elements to describe a service supported by the self-describing network device, the first and second set of elements being written in an XML syntax;

processing means for returning 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.

20. A system as recited in claim 19 , wherein the storage means comprises a first computer-readable media located at the self-describing network device to store the first set of elements and a second computer-readable media located remotely from the self-describing network device, but accessible via a network, to store the second set of elements.

21. A system as recited in claim 19 , wherein the first set of elements includes at least one of:

a first element to identify one or more versions of a template language;

a second element to identify the self-describing network device; and

a third element to specify a base universal resource locator (URL).

22. A system as recited in claim 19 , 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.

23. A system as recited in claim 19 , 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.

24. A system as recited in claim 23 , 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.

25. A system as recited in claim 23 , 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.

26. A system as recited in claim 19 , wherein the processing means responds to an HTTP GET request by returning the first set of elements and at least the reference to the second set of elements in a body of an HTTP response.

27. A computer-readable medium comprising computer-executable instructions that, when executed, perform acts comprising:

create a device template using a template language written in XML syntax;

define, from the device template, a device description for a self-describing network device; and

automatically evaluate, via a computer software tool, whether the device description is well formed.

28. A computer-readable medium as recited in claim 27 , wherein the template language is derived from XML schema.

29. A computer-readable medium as recited in claim 27 , wherein the self-describing network device comprises a universal plug and play device.

30. A computer-readable medium as recited in claim 27 , further comprising computer-executable instructions that, when executed, cause the device description to be stored on a computer-readable medium.

31. A computer-readable medium as recited in claim 27 , further comprising computer-executable instructions that, when executed, perform acts comprising:

create a service template from a template language written in XML syntax; and

define, from the service template, a service description for a service supported by the self-describing network device.

32. A computer-readable medium comprising computer-executable instructions that, when executed, perform acts comprising:

create a service template from a template language written in XML syntax;

define, from the service template, a service description for a service supported by a self-describing network device; and

automatically evaluate, via a computer software tool, whether the service description is well formed.

33. A computer-readable medium as recited in claim 32 , wherein the template language is derived from XML schema.

34. A computer-readable medium as recited in claim 32 , wherein the self-describing network device comprises a universal plug and play device.

35. A computer-readable medium as recited in claim 32 , further comprising computer-executable instructions that, when executed, cause the service description to be stored on a computer-readable medium.

36. Computer-readable media comprising computer-executable instructions that, when executed, perform acts comprising:

store a first set of elements to describe a self-describing network device and a second set of elements to describe a service supported by the self-describing network device, the first and second set of elements being written in an XML syntax;

responsive to a request for a description of the self-describing network device, return the first set of elements and at least a reference to the second set of elements.

37. Computer-readable media as recited in claim 36 , wherein the first set of elements are stored at the self-describing network device and the second set of elements are stored remotely from the self-describing network device.

38. Computer-readable media as recited in claim 36 , wherein the first set of elements includes at least one of:

a first element to identify one or more versions of a template language;

a second element to identify the self-describing network device; and

a third element to specify a base universal resource locator (URL).

39. Computer-readable media as recited in claim 38 , 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.

40. Computer-readable media as recited in claim 36 , 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.

41. Computer-readable media as recited in claim 40 , 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.

42. Computer-readable media as recited in claim 40 , 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.

43. Computer-readable media as recited in claim 36 , wherein the request is an HTTP GET request, and the first set of elements and at least the reference to the second set of elements are returned in a body of an HTTP response.

Assignments (7)
PARTIAL RELEASE OF SECURITY INTEREST IN PATENTS Recorded Oct 27, 2022
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ROVI PRODUCT CORPORATION (AS SUCCESSOR-IN-INTEREST TO ROVI TECHNOLOGIES CORPORATION)
Reel/Frame 061786/0897 →
RELEASE OF SECURITY INTEREST Recorded Jun 5, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
Reel/Frame 053481/0790 →
RELEASE OF SECURITY INTEREST Recorded Jun 5, 2020
From: HPS INVESTMENT PARTNERS, LLC
To: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
Reel/Frame 053458/0749 →
SECURITY INTEREST Recorded Jun 1, 2020
From: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS INC.; VEVEO, INC.; INVENSAS CORPORATION; INVENSAS BONDING TECHNOLOGIES, INC.; TESSERA, INC.; TESSERA ADVANCED TECHNOLOGIES, INC.; DTS, INC.; PHORUS, INC.; IBIQUITY DIGITAL CORPORATION
To: BANK OF AMERICA, N.A.
Reel/Frame 053468/0001 →
PATENT SECURITY AGREEMENT Recorded Nov 25, 2019
From: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 051110/0006 →
SECURITY INTEREST Recorded Nov 22, 2019
From: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
To: HPS INVESTMENT PARTNERS, LLC, AS COLLATERAL AGENT
Reel/Frame 051143/0468 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2014
From: MICROSOFT CORPORATION
To: ROVI TECHNOLOGIES CORPORATION
Reel/Frame 034539/0676 →