Distributed database management system
First Claim
1. A process for a self-maintaining distributed database system that ensures that a consistent subset of a central database is replicated in any number of client devices in a computer environment, comprising the steps of:
- providing a central database resident on a server;
wherein said database contains database objects;
gathering objects to be replicated into distribution packages called “
slices”
;
wherein a slice is a subset of said central database which is relevant to clients within a specific domain;
transmitting slices to client devices; and
receiving uploaded database objects from client devices.
7 Assignments
0 Petitions
Accused Products
Abstract
A distributed database management system provides a central database resident on a server that contains database objects. Objects to be replicated are gathered together into distribution packages called “slices,” that are encrypted using a short-lived symmetric key and broken into a succession of short, numbered data packets before being transmitted to client devices. Data packets are captured by client devices and held in a staging area until all packets in the sequence are present and are then reassembled into the correct slice, which is then decrypted, or discarded when an error is detected in the data packet. The source version, reference count, and dependencies of the received object are verified before adding it to the database. The invention provides a reaper that periodically examines all objects in the database and, depending on the object type, examines various attributes and attribute values to decide if the object should be retained in the database. Periodic tasks are invoked on the server to cull uploaded objects from the database and to forward or dispose of them as appropriate which may result in new objects being added to the central database, existing objects being updated, or new or updated objects transmitted to client devices. Weighted preference objects are created based on direct and indirect preferences from which a list of preferred programs is generated and used to create a recording schedule which is a collection of recorded programs of most interest to the viewer. Client devices periodically connect to the server using a phone line and upload information of interest which is combined with information uploaded from other client devices for statistical, operational, or viewing models.
200 Citations
162 Claims
-
1. A process for a self-maintaining distributed database system that ensures that a consistent subset of a central database is replicated in any number of client devices in a computer environment, comprising the steps of:
-
providing a central database resident on a server;
wherein said database contains database objects;
gathering objects to be replicated into distribution packages called “
slices”
;
wherein a slice is a subset of said central database which is relevant to clients within a specific domain;
transmitting slices to client devices; and
receiving uploaded database objects from client devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54)
encrypting a slice using a short-lived symmetric key before transmitting said slice to client devices.
-
-
4. The process of claim 3, wherein only client devices which have been authenticated using secure protocols will have a copy of said symmetric key, enabling them to decrypt said slice and access the objects within said slice.
-
5. The process of claim 1, wherein the data describing a slice is transmitted continually until a new slice is provided for transmission.
-
6. The process of claim 1, wherein said transmission is through communication mediums such as broadcast mechanisms, modems, networks, or the Internet.
-
7. The process of claim 1, wherein when a connection between said central database and a client device is established, the client device sends an inventory of previously received slices to a transmission server;
- and wherein said transmission server compares said inventory with the list of slices that should have been processed by said client and slices which were not processed are transmitted to said client device.
-
8. The process of claim 1, wherein a slice is transmitted by breaking the encrypted slice into a succession of short, numbered data packets.
-
9. The process of claim 8, wherein said data packets are captured by client devices and held in a staging area until all packets in the sequence are present and wherein said packets are reassembled into the correct slice, which is then decrypted.
-
10. The process of claim 9, wherein the database objects within the slice are filtered for applicability, possibly being added to the local database.
-
11. The process of claim 9, wherein data packets which are older than a selected time period are purged from the staging area on a periodic basis.
-
12. The process of claim 9, wherein a data packet is discarded when an error is detected in said data packet.
-
13. The process of claim 1, wherein a slice may communicate service related data to a client device.
-
14. The process of claim 1, wherein a slice may contain an authorization object indicating the allowable time delay before another authorization object is received, as well as one or more symmetric keys used to decrypt new slices and are valid for a short time period.
-
15. The process of claim 14, wherein if the client has not received a proper authentication object by the delay time set in said client'"'"'s local database, said client will commence denial of select services to the viewer.
-
16. The process of claim 1, wherein database updates are treated as transactions such that an entire transaction is completed or none of the transaction is completed.
-
17. The process of claim 1, wherein every object in said database has a version attribute.
-
18. The process of claim 1, wherein the schema for each object that may be replicated includes a source version attribute that indicates the version of the object from which the object was replicated.
-
19. The process of claim 18, further comprising the step of:
-
comparing the source version of the received object with the source version of the current object when an object is received; and
wherein if said received object has a higher source version attribute than said current object, then said received object is copied over said existing current object, otherwise said received object is discarded.
-
-
20. The process of claim 1, wherein an object has an expiration attribute and wherein said expiration attribute comprises a date and time indication after which the object is no longer valid and should be discarded.
-
21. The process of claim 20, wherein when a new object is received, the expiration time is checked, and said new object is discarded if it has expired.
-
22. The process of claim 1, wherein a filter object is defined for each object type and indicates what attributes are required, should not be present, or ranges of values for attributes that make it acceptable for addition to the database.
-
23. The process of claim 22, wherein said filter object may contain executable code.
-
24. The process of claim 1, wherein a dependency attribute is defined for a new object which lists the object IDs and source versions of objects that said new object is dependent on.
-
25. The process of claim 1, wherein when a new object is received, the database is first checked to see if all dependencies of that object are present and if so, the new object is added to the database, otherwise the new object is “
- staged”
, saving it in a holding area until all dependent objects are also staged.
- staged”
-
26. The process of claim 1, further comprising the step of:
allowing an application to perform introspection on the database to dynamically discover what object types are supported and their schema.
-
27. The process of claim 1, further comprising the step of:
-
assigning each object in said database an object ID; and
wherein said object ID is unique within said database.
-
-
28. The process of claim 1, wherein each object in said database has a reference count and wherein an object with a reference count of zero will not persist in said database.
-
29. The process of claim 28, wherein the reference count of an object is incremented by one for each object that refers to it.
-
30. The process of claim 28, wherein if an object which refers to other objects is deleted, then the reference count on all objects referred by it is decremented.
-
31. The process of claim 27, wherein a directory object maintains a list of object IDs that refer to an object and an associated simple name for said object.
-
32. The process of claim 31, wherein an object may be referred to by multiple paths such that one object may have many names.
-
33. The process of claim 1, wherein a derived attribute is maintained for each object listing the directory objects which refer to that object.
-
34. The process of claim 1, wherein an indexer object is defined for each object type and indicates what attributes are to be used when indexing each object type into the database namespace;
- and wherein said indexer object may contain executable code.
-
35. The process of claim 1, further comprising the step of:
-
providing a reaper; and
wherein said reaper periodically examines all objects in the database and, depending on the object type, further examines various attributes and attribute values to decide if the object should be retained in the database.
-
-
36. The process of claim 35, wherein said reaper accesses a reaper object containing executable code and associated with the object type of the current object.
-
37. The process of claim 1, wherein client devices periodically contact said server.
-
38. The process of claim 1, wherein the client device sends a byte sequence identifying itself which is encrypted with its secret key.
-
39. The process of claim 38, wherein said server fetches the matching database object for the client device from the central database and uses the key stored in said object to decrypt the byte sequence.
-
40. The process of claim 38, wherein said server sends a byte sequence to said client, encrypted in its secret key, giving said client a new one-time encryption key for the session.
-
41. The process of claim 40, wherein both sides must successfully decrypt their authentication message in order to communicate.
-
42. The process of claim 40, wherein all further communication is encrypted using the one-time session encryption key.
-
43. The process of claim 1, wherein viewing and operations data residing on said client are uploaded to said central database.
-
44. The process of claim 1, wherein an uploaded object is assigned a navigable attribute containing information about its source and is indexed uniquely into the database namespace when it is added.
-
45. The process of claim 1, wherein uploaded objects are not immediately added to the central database but are queued for later insertion into the central database.
-
46. The process of claim 1, further comprising the step of:
-
invoking periodic tasks on the server to cull uploaded objects from the database and to forward or dispose of them as appropriate which may result in new objects being added to the central database or existing objects being updated; and
wherein the new or updated objects are transmitted to client devices.
-
-
47. The process of claim 1, further comprising the step of:
providing aggregation objects that describe a set of database objects that are interrelated in some fashion.
-
48. The process of claim 1, further comprising the step of:
-
creating preference objects based on direct and indirect preferences;
wherein said preference objects are weighted; and
wherein non-linear combinations may be used for weighting a preference object.
-
-
49. The process of claim 48, further comprising the step of:
generating a list of preferred programs using said preference objects.
-
50. The process of claim 49, further comprising the step of:
-
creating a recording schedule using said preferred list; and
wherein said schedule lists a collection of recorded programs of most interest to the viewer.
-
-
51. The process of claim 1, wherein client devices record operations status objects that include, but are not limited to, viewer actions, transactional information, automatic actions, software installation actions, and hardware exceptions of various kinds.
-
52. The process of claim 1, further comprising the step of:
performing extensive analysis of hardware reliability trends and failure modes by examining uploaded operations status objects from client devices.
-
53. The process of claim 1, further comprising the step of:
deriving demographic or psychographic information about various populations of client devices by examining uploaded viewing information from said client devices.
-
54. The process of claim 1, further comprising the step of:
generating “
rating” and
“
share”
values for particular programs by examining uploaded viewing information objects from client devices.
-
55. An apparatus for a self-maintaining distributed database system that ensures that a consistent subset of a central database is replicated in any number of client devices in a computer environment, comprising:
-
a central database resident on a server;
wherein said database contains database objects;
a module for gathering objects to be replicated into distribution packages called “
slices”
;
wherein a slice is a subset of said central database which is relevant to clients within a specific domain;
a module for transmitting slices to client devices; and
a module for receiving uploaded database objects from client devices. - View Dependent Claims (56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108)
a module for encrypting a slice using a short-lived symmetric key before transmitting said slice to client devices.
-
-
58. The apparatus of claim 57, wherein only client devices which have been authenticated using secure protocols will have a copy of said symmetric key, enabling them to decrypt said slice and access the objects within said slice.
-
59. The apparatus of claim 55, wherein the data describing a slice is transmitted continually until a new slice is provided for transmission.
-
60. The apparatus of claim 55, wherein said transmission is through communication mediums such as broadcast mechanisms, modems, networks, or the Internet.
-
61. The apparatus of claim 55, wherein when a connection between said central database and a client device is established, the client device sends an inventory of previously received slices to a transmission server;
- and wherein said transmission server compares said inventory with the list of slices that should have been processed by said client and slices which were not processed are transmitted to said client device.
-
62. The apparatus of claim 55, wherein a slice is transmitted by breaking the encrypted slice into a succession of short, numbered data packets.
-
63. The apparatus of claim 62, wherein said data packets are captured by client devices and held in a staging area until all packets in the sequence are present and wherein said packets are reassembled into the correct slice, which is then decrypted.
-
64. The apparatus of claim 63, wherein the database objects within the slice are filtered for applicability, possibly being added to the local database.
-
65. The apparatus of claim 63, wherein data packets which are older than a selected time period are purged from the staging area on a periodic basis.
-
66. The apparatus of claim 63, wherein a data packet is discarded when an error is detected in said data packet.
-
67. The apparatus of claim 55, wherein a slice may communicate service related data to a client device.
-
68. The apparatus of claim 55, wherein a slice may contain an authorization object indicating the allowable time delay before another authorization object is received, as well as one or more symmetric keys used to decrypt new slices and are valid for a short time period.
-
69. The apparatus of claim 68, wherein if the client has not received a proper authentication object by the delay time set in said client'"'"'s local database, said client will commence denial of select services to the viewer.
-
70. The apparatus of claim 55, wherein database updates are treated as transactions such that an entire transaction is completed or none of the transaction is completed.
-
71. The apparatus of claim 55, wherein every object in said database has a version attribute.
-
72. The apparatus of claim 55, wherein the schema for each object that may be replicated includes a source version attribute that indicates the version of the object from which the object was replicated.
-
73. The apparatus of claim 72, further comprising:
-
a module for comparing the source version of the received object with the source version of the current object when an object is received; and
wherein if said received object has a higher source version attribute than said current object, then said received object is copied over said existing current object, otherwise said received object is discarded.
-
-
74. The apparatus of claim 55, wherein an object has an expiration attribute and wherein said expiration attribute comprises a date and time indication after which the object is no longer valid and should be discarded.
-
75. The apparatus of claim 74, wherein when a new object is received, the expiration time is checked, and said new object is discarded if it has expired.
-
76. The apparatus of claim 55, wherein a filter object is defined for each object type and indicates what attributes are required, should not be present, or ranges of values for attributes that make it acceptable for addition to the database.
-
77. The apparatus of claim 76, wherein said filter object may contain executable code.
-
78. The apparatus of claim 55, wherein a dependency attribute is defined for a new object which lists the object IDs and source versions of objects that said new object is dependent on.
-
79. The apparatus of claim 55, wherein when a new object is received, the database is first checked to see if all dependencies of that object are present and if so, the new object is added to the database, otherwise the new object is “
- staged”
, saving it in a holding area until all dependent objects are also staged.
- staged”
-
80. The apparatus of claim 55, further comprising:
a module for allowing an application to perform introspection on the database to dynamically discover what object types are supported and their schema.
-
81. The apparatus of claim 55, further comprising:
-
a module for assigning each object in said database an object ID; and
wherein said object ID is unique within said database.
-
-
82. The apparatus of claim 55, wherein each object in said database has a reference count and wherein an object with a reference count of zero will not persist in said database.
-
83. The apparatus of claim 82, wherein the reference count of an object is incremented by one for each object that refers to it.
-
84. The apparatus of claim 82, wherein if an object which refers to other objects is deleted, then the reference count on all objects referred by it is decremented.
-
85. The apparatus of claim 81, wherein a directory object maintains a list of object IDs that refer to an object and an associated simple name for said object.
-
86. The apparatus of claim 85, wherein an object may be referred to by multiple paths such that one object may have many names.
-
87. The apparatus of claim 55, wherein a derived attribute is maintained for each object listing the directory objects which refer to that object.
-
88. The apparatus of claim 55, wherein an indexer object is defined for each object type and indicates what attributes are to be used when indexing each object type into the database namespace;
- and wherein said indexer object may contain executable code.
-
89. The apparatus of claim 55, further comprising:
-
a reaper; and
wherein said reaper periodically examines all objects in the database and, depending on the object type, further examines various attributes and attribute values to decide if the object should be retained in the database.
-
-
90. The apparatus of claim 89, wherein said reaper accesses a reaper object containing executable code and associated with the object type of the current object.
-
91. The apparatus of claim 55, wherein client devices periodically contact said server.
-
92. The apparatus of claim 55, wherein the client device sends a byte sequence identifying itself which is encrypted with its secret key.
-
93. The apparatus of claim 92, wherein said server fetches the matching database object for the client device from the central database and uses the key stored in said object to decrypt the byte sequence.
-
94. The apparatus of claim 92, wherein said server sends a byte sequence to said client, encrypted in its secret key, giving said client a new one-time encryption key for the session.
-
95. The apparatus of claim 94, wherein both sides must successfully decrypt their authentication message in order to communicate.
-
96. The apparatus of claim 94, wherein all further communication is encrypted using the one-time session encryption key.
-
97. The apparatus of claim 55, wherein viewing and operations data residing on said client are uploaded to said central database.
-
98. The apparatus of claim 55, wherein an uploaded object is assigned a navigable attribute containing information about its source and is indexed uniquely into the database namespace when it is added.
-
99. The apparatus of claim 55, wherein uploaded objects are not immediately added to the central database but are queued for later insertion into the central database.
-
100. The apparatus of claim 55, further comprising:
-
a module for invoking periodic tasks on the server to cull uploaded objects from the database and to forward or dispose of them as appropriate which may result in new objects being added to the central database or existing objects being updated; and
wherein the new or updated objects are transmitted to client devices.
-
-
101. The apparatus of claim 55, further comprising:
aggregation objects that describe a set of database objects that are interrelated in some fashion.
-
102. The apparatus of claim 55, further comprising:
-
a module for creating preference objects based on direct and indirect preferences;
wherein said preference objects are weighted; and
wherein non-linear combinations may be used for weighting a preference object.
-
-
103. The apparatus of claim 102, further comprising:
a module for generating a list of preferred programs using said preference objects.
-
104. The apparatus of claim 103, further comprising:
-
a module for creating a recording schedule using said preferred list; and
wherein said schedule lists a collection of recorded programs of most interest to the viewer.
-
-
105. The apparatus of claim 55, wherein client devices record operations status objects that include, but are not limited to, viewer actions, transactional information, automatic actions, software installation actions, and hardware exceptions of various kinds.
-
106. The apparatus of claim 55, further comprising:
a module for performing extensive analysis of hardware reliability trends and failure modes by examining uploaded operations status objects from client devices.
-
107. The apparatus of claim 55, further comprising:
a module for deriving demographic or psychographic information about various populations of client devices by examining uploaded viewing information from said client devices.
-
108. The apparatus of claim 55, further comprising:
a module for generating “
rating” and
“
share”
values for particular programs by examining uploaded viewing information objects from client devices.
-
109. A program storage medium readable by a computer, tangibly embodying a program of instructions executable by the computer to perform method steps for a self-maintaining distributed database system that ensures that a consistent subset of a central database is replicated in any number of client devices in a computer environment, comprising the steps of:
-
providing a central database resident on a server;
wherein said database contains database objects;
gathering objects to be replicated into distribution packages called “
slices”
;
wherein a slice is a subset of said central database which is relevant to clients within a specific domain;
transmitting slices to client devices; and
receiving uploaded database objects from client devices. - View Dependent Claims (110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162)
encrypting a slice using a short-lived symmetric key before transmitting said slice to client devices.
-
-
112. The method of claim 111, wherein only client devices which have been authenticated using secure protocols will have a copy of said symmetric key, enabling them to decrypt said slice and access the objects within said slice.
-
113. The method of claim 109, wherein the data describing a slice is transmitted continually until a new slice is provided for transmission.
-
114. The method of claim 109, wherein said transmission is through communication mediums such as broadcast mechanisms, modems, networks, or the Internet.
-
115. The method of claim 109, wherein when a connection between said central database and a client device is established, the client device sends an inventory of previously received slices to a transmission server;
- and wherein said transmission server compares said inventory with the list of slices that should have been processed by said client and slices which were not processed are transmitted to said client device.
-
116. The method of claim 109, wherein a slice is transmitted by breaking the encrypted slice into a succession of short, numbered data packets.
-
117. The method of claim 116, wherein said data packets are captured by client devices and held in a staging area until all packets in the sequence are present and wherein said packets are reassembled into the correct slice, which is then decrypted.
-
118. The method of claim 117, wherein the database objects within the slice are filtered for applicability, possibly being added to the local database.
-
119. The method of claim 117, wherein data packets which are older than a selected time period are purged from the staging area on a periodic basis.
-
120. The method of claim 117, wherein a data packet is discarded when an error is detected in said data packet.
-
121. The method of claim 109, wherein a slice may communicate service related data to a client device.
-
122. The method of claim 109, wherein a slice may contain an authorization object indicating the allowable time delay before another authorization object is received, as well as one or more symmetric keys used to decrypt new slices and are valid for a short time period.
-
123. The method of claim 122, wherein if the client has not received a proper authentication object by the delay time set in said client'"'"'s local database, said client will commence denial of select services to the viewer.
-
124. The method of claim 109, wherein database updates are treated as transactions such that an entire transaction is completed or none of the transaction is completed.
-
125. The method of claim 109, wherein every object in said database has a version attribute.
-
126. The method of claim 109, wherein the schema for each object that may be replicated includes a source version attribute that indicates the version of the object from which the object was replicated.
-
127. The method of claim 126, further comprising the step of:
-
comparing the source version of the received object with the source version of the current object when an object is received; and
wherein if said received object has a higher source version attribute than said current object, then said received object is copied over said existing current object, otherwise said received object is discarded.
-
-
128. The method of claim 109, wherein an object has an expiration attribute and wherein said expiration attribute comprises a date and time indication after which the object is no longer valid and should be discarded.
-
129. The method of claim 128, wherein when a new object is received, the expiration time is checked, and said new object is discarded if it has expired.
-
130. The method of claim 109, wherein a filter object is defined for each object type and indicates what attributes are required, should not be present, or ranges of values for attributes that make it acceptable for addition to the database.
-
131. The method of claim 130, wherein said filter object may contain executable code.
-
132. The method of claim 109, wherein a dependency attribute is defined for a new object which lists the object IDs and source versions of objects that said new object is dependent on.
-
133. The method of claim 109, wherein when a new object is received, the database is first checked to see if all dependencies of that object are present and if so, the new object is added to the database, otherwise the new object is “
- staged”
, saving it in a holding area until all dependent objects are also staged.
- staged”
-
134. The method of claim 109, further comprising the step of:
allowing an application to perform introspection on the database to dynamically discover what object types are supported and their schema.
-
135. The method of claim 109, further comprising the step of:
-
assigning each object in said database an object ID; and
wherein said object ID is unique within said database.
-
-
136. The method of claim 109, wherein each object in said database has a reference count and wherein an object with a reference count of zero will not persist in said database.
-
137. The method of claim 136, wherein the reference count of an object is incremented by one for each object that refers to it.
-
138. The method of claim 136, wherein if an object which refers to other objects is deleted, then the reference count on all objects referred by it is decremented.
-
139. The method of claim 135, wherein a directory object maintains a list of object IDs that refer to an object and an associated simple name for said object.
-
140. The method of claim 139, wherein an object may be referred to by multiple paths such that one object may have many names.
-
141. The method of claim 109, wherein a derived attribute is maintained for each object listing the directory objects which refer to that object.
-
142. The method of claim 109, wherein an indexer object is defined for each object type and indicates what attributes are to be used when indexing each object type into the database namespace;
- and wherein said indexer object may contain executable code.
-
143. The method of claim 109, further comprising the step of:
-
providing a reaper; and
wherein said reaper periodically examines all objects in the database and, depending on the object type, further examines various attributes and attribute values to decide if the object should be retained in the database.
-
-
144. The method of claim 143, wherein said reaper accesses a reaper object containing executable code and associated with the object type of the current object.
-
145. The method of claim 109, wherein client devices periodically contact said server.
-
146. The method of claim 109, wherein the client device sends a byte sequence identifying itself which is encrypted with its secret key.
-
147. The method of claim 146, wherein said server fetches the matching database object for the client device from the central database and uses the key stored in said object to decrypt the byte sequence.
-
148. The method of claim 146, wherein said server sends a byte sequence to said client, encrypted in its secret key, giving said client a new one-time encryption key for the session.
-
149. The method of claim 148, wherein both sides must successfully decrypt their authentication message in order to communicate.
-
150. The method of claim 148, wherein all further communication is encrypted using the one-time session encryption key.
-
151. The method of claim 109, wherein viewing and operations data residing on said client are uploaded to said central database.
-
152. The method of claim 109, wherein an uploaded object is assigned a navigable attribute containing information about its source and is indexed uniquely into the database namespace when it is added.
-
153. The method of claim 109, wherein uploaded objects are not immediately added to the central database but are queued for later insertion into the central database.
-
154. The method of claim 109, further comprising the step of:
-
invoking periodic tasks on the server to cull uploaded objects from the database and to forward or dispose of them as appropriate which may result in new objects being added to the central database or existing objects being updated; and
wherein the new or updated objects are transmitted to client devices.
-
-
155. The method of claim 109, further comprising the step of:
providing aggregation objects that describe a set of database objects that are interrelated in some fashion.
-
156. The method of claim 109, further comprising the step of:
-
creating preference objects based on direct and indirect preferences;
wherein said preference objects are weighted; and
wherein non-linear combinations may be used for weighting a preference object.
-
-
157. The method of claim 156, further comprising the step of:
generating a list of preferred programs using said preference objects.
-
158. The method of claim 157, further comprising the step of:
-
creating a recording schedule using said preferred list; and
wherein said schedule lists a collection of recorded programs of most interest to the viewer.
-
-
159. The method of claim 109, wherein client devices record operations status objects that include, but are not limited to, viewer actions, transactional information, automatic actions, software installation actions, and hardware exceptions of various kinds.
-
160. The method of claim 109, further comprising the step of:
performing extensive analysis of hardware reliability trends and failure modes by examining uploaded operations status objects from client devices.
-
161. The method of claim 109, further comprising the step of:
deriving demographic or psychographic information about various populations of client devices by examining uploaded viewing information from said client devices.
-
162. The method of claim 109, further comprising the step of:
generating “
rating” and
“
share”
values for particular programs by examining uploaded viewing information objects from client devices.
Specification