Storage Structure

All information objects handled by the Information Service are arranged in a common storage structure. This structure defines how information objects get their initial values and how various parts of the system are allowed to manipulate these values.

Information Sources

The basis for the storage structure is the hierarchy of information sources. The source defines how an object gets its initial value, and also regulates how the value may be changed in various ways.

Information sources in priority order
Source Description Initial value determined at Allows changes Allows removes
OS The value is based on information from the operating system. Boot No No
Flash User Configuration The value is stored in flash and may by changed during the boot process. Production Boot No
Flash Production Data The value is defined in production and used during the boot process. Production No No
Volatile Information objects may be introduced, changed, and removed in run-time. All objects are removed at the end of each session, i.e., when going to stand-by. Run-time Run-time Run-time
Flash File System Information objects may be introduced, changed, and removed in run-time. The objects are stored permanently and survives stand-by and system reboot. Run-time Run-time Run-time
Infocast Information objects and their values are controlled from the IP-STB Server. Server controlled Server controlled Server controlled
Derived Information objects have values that are derived from other information objects. Boot No No
Build Information objects about the build. Build No No
Default The default source provide default values for some information objects. Since this source has the lowest priority it is truly default. Build No No

Search Algorithm

The same information object may in general be stored in more than one place (i.e., have multiple sources) at the same time. When the value of an information object is requested, the sources are searched in priority order, i.e., it starts looking in the OS source and continues searching down the hierarchy. When a source is found which defines the object, the search ends and the object gets the value as defined by that source. In effect objects defined by one source hides any definition of the same object in lower priority sources. If no valid source is found this is indicated with an error. When a new information object is introduced, changed, or removed, all subscribers to that particular information object are notified, given that there is no value for the object in a higher priority source.

A few general observations can be made by applying this search algorithm on the storage structure. First of all, new information objects are allowed to be introduced in run-time only for the flash file system, infocast, and volatile sources, but depending on the source used, objects will express different time to live properties. Secondly, the priority order implies that objects that are present in one of the three top sources (OS, flash user configuration, and flash production data) can never be changed in run-time. Even if any of these objects added to any other source, like for example the infocast source, these changes will not be visible and consequently they will never take effect.