Overview of the Universal Remote Console framework

This document provides an overview on the components of the Universal Remote Console (URC) framework, as defined by ISO/IEC 24752.

The International Standard ISO/IEC 24752 specifies communications between a target that a user wishes to access and operate, and a universal remote console (URC) that presents the user with a remote user interface through which they can discover, select, access and operate the target. The URC is a device or software through which the user accesses the target. If the URC is software, it is typically hosted on the user's physical device, but a distributed approach is also possible.

Communications between the target and URC take place over a network, the target-URC network. This International Standard does not specify the network protocol to be used, and a target or URC may support any number of appropriate connection protocols. These protocols are used to provide discovery

of targets, and to establish and maintain control sessions between URCs and targets. Targets and URCs access the target-URC network through target-URC network links. Targets support discovery by providing essential information in a target description.

Each target provides a user interface socket (or short socket), or set of sockets, through which a URC can access part or all of the target's internal states and provide control inputs to the target. For each socket, a target provides a user interface socket description (or short socket description) which describes the socket in a machine interpretable manner. Additionally the target provides resources that pertain to the user interface of the target, as viewed through that socket. The socket description and resources are used by the URC to find or generate an appropriate user interface, given the functionality of the target, the nature of the URC device, and the user's interaction preferences.

Interaction between a target and a URC consists of a discovery phase and an optional control phase. The discovery phase initializes the URC to locate and identify all available targets and their sockets. The control phase is the time period during which a target and a URC initiate, maintain and terminate a control session. A control session is a connection between the URC and a target's socket for the purpose of the URC controlling a functional unit of the target via the socket. When multiple URCs are connected to the same socket, each has an independent control session, although target state values may be shared.

One type of resource is a user interface implementation description (UIID). A UIID is a description of a user interface for a particular socket. This description may take an abstract or concrete form, and may be very general or specific to a given URC device class, user profile and task. The UIIDs provide a mechanism by which a manufacturer can provide tuned interfaces for their target sockets which are predefined and optimized to work on particular URCs, for example smartphones or tablets. UIIDs can be provided by a target or by external sources.

Another type of resource is an atomic resource. An atomic resource is an object within a user interface that is used as an atomic entity in the construction of a concrete user interface. Atomic resources include labels, help text, access keys, keywords and locations. An atomic resource may be of any form and modality, including text, images, sounds, animations and video clips.

Socket descriptions and UIIDs are documents that are independent of any natural language. In order to render their content to a user, atomic resources are provided (by the target and external to it) in the form of resource sheets. A resource sheet is a file that contains descriptions of atomic resources (also called atomic resource descriptions).

A grouping resource is a resource that defines a hierarchical structure for the elements of a socket or UIID. Grouping resources are useful for constructing the layout and navigation mechanisms of a particular user interface. Grouping resources are provided in grouping sheets.

A URC may take advantage of resources from the target or from a resource service. These are referred to as target resources and supplemental resources respectively. Supplemental resources can be used by a URC to replace, to supplement, or to help interpret or translate, any resources provided by a target.

In general, resources for building user interfaces may be obtained from the target, stored on the URC, or gathered from the Internet. A URC uses the target-URC network to retrieve target resources. It may use any form of networking or other mechanism to access supplemental resources via a resource-URC network. The ISO/IEC 24752 Standard does not specify the mechanism by which a URC accesses resources external to the target.

Table 1: Overview of URC components
Component Description References to parts of ISO/IEC 24752
target description information on a target that is necessary for access to the target and its sockets

ISO/IEC 24752-1:2013, sections 4.53 (definition), 5.2.4 Interpretation of the target description, 6.1 Discovery management, 8.2.3 Support for discovery; ISO/IEC 24752-4:2013 Target Description standard

(user interface) socket machine-operable access and control point for a target ISO/IEC 24752-1:2013, sections 4.41 (definition), 5.4 Socket management (URC), 6.2 User interface socket, 6.6 Socket management (target), 8.2.5.3 Support for socket synchronization
(user interface) socket description specification that describes the functions and properties of a socket ISO/IEC 24752-1:2013, sections 4.42 (definition), 6.3 User interface socket description; ISO/IEC 24752-2:2013 User Interface Socket Description standard.
user interface implementation description (UIID) description for implementing a user interface to a target, based on the target’s socket ISO/IEC 24752-1:2013, sections 4.60 (definition), 6.4.7 Target user interface implementation descriptions (UIIDs), 7.10 Supplemental user interface implementation descriptions (UIIDs)
resource object that is used as an entity or to support decision making in the construction of a concrete user interface

Note: Resources are either provided by the target (target resource) or are made available externally to a target (supplemental resource)

ISO/IEC 24752-1:2013, section 4.30 (definition of "resource"), 4.50 (definition of "supplemental resource"), 4.55 (definition of "target resource"), 5.7.2 Use of target resources and supplemental resources, 6.4 Target resources, 7 Supplemental resources
atomic resource resource that is used as an atomic entity in the construction of a concrete user interface. Atomic resources include label resources, help resources, access key resources, keyword resources and location descriptions. An atomic resource may be of any form, including text, images, sounds, animations and video clips.

Note: Atomic resources are either static or dynamic. Static atomic resources are provided before runtime, e.g. through a resource sheet. Dynamic atomic resources are provided by the target at runtime.

ISO/IEC 24752-1:2013, sections 4.3 (definition of "atomic resource"), 4.14 (definition of "dynamic atomic resource"), 4.46 (definition of "static atomic resource"), 5.5.2 Support for dynamic atomic resources, 5.7 User interface generation, 6.4.2 Target atomic resources, 6.6.11 Providing dynamic atomic resources, 7.6 Supplemental atomic resources, 8.2.5.4 Support for synchronization of dynamic atomic resources
resource description description of a resource in terms of its properties

Note: An atomic resource description is a special type of resource description and refers to atomic resources.

ISO/IEC 24752-1:2013, sections 4.3 (definition of "atomic resource description"), 4.29 (definition of "resource description"); ISO/IEC 24752-5:2013, section 6 Atomic resource description.
resource sheet file that contains atomic resource descriptions ISO/IEC 24752-1:2013, sections 4.33 (definition), 6.4.3 Target resource sheets, 7.7 Supplemental resource sheets; ISO/IEC 24752-5:2013, section 7 Resource sheet
grouping resource hierarchical structure of user interface socket elements or user interface implementation description elements in a top-down fashion that is provided externally to a socket description ISO/IEC 24752-1:2013, sections 4.17 (definition), 6.4.1 Target grouping resources, 7.8 Supplemental grouping resources; ISO/IEC 24752-5:2013, section 8 Grouping resource
grouping sheet file that contains grouping resources ISO/IEC 24752-1:2013, sections 4.18 (definition), 6.4.4 Target grouping sheets, 7.9 Supplemental grouping sheets; ISO/IEC 24752-5:2013, section 9 Grouping sheet
target-URC network network connecting the target and the URC, which may employ any networking and connection technologies

Examples of connection technologies include Ethernet, Bluetooth, and 802.11. Examples of networking technologies include UPnP and Java/Jini.

Note: URCs and targets connect to the target-URC network through a target-URC network link.

ISO/IEC 24752-1:2013, section 4.56 (definition of "target-URC network"), 4.58 (definition of "target-URC network link), 5.5 Target-URC network link on the URC, 6.7 Target-URC network link (TUNL) on the target, 8.2 Target-URC network (TUN).
resource-URC network network connecting the URC to sources of supplemental resources and user interface implementation descriptions (UIIDs)

Note: URCs connect to the resource-URC network through a resource-URC network link.

ISO/IEC 24752-1:2013, sections 4.34 (definition of "resource-URC network"), 4.35 (definition of "resource-URC network link"), 5.6 Resource-URC network link (RUNL) on the URC, 8.3 Resource-URC network (RUN)

Major components of the URC framework

Figure 1 illustrates the major components of the URC framework within the broader context of the URC application. It illustrates both elements for which there are formats specified by the URC framework, and elements that can use these or other standard or proprietary formats. This figure is provided as a conceptual map and is not intended to prescribe a particular architecture. Any alternative architecture may be adopted provided the required functionality is implemented and standard format documents are provided. Technical details for each component are provided in separate documents, as referenced in table 1 above.

Overall structure and components of the URC framework

Figure 1: Overall structure and components of the URC framework. Documents are represented as rectangles with rounded corners. (Textual description of Fig. 1)

As shown in Figure 1, the URC architecture can be thought of as comprising four major components and two networks.

The four major components are:

  1. The Universal Remote Console (URC)
  2. The Target
  3. Supplemental User Interface Implementation descriptions (UIIDs) (optional)
  4. Supplemental Resources (optional)

The two networks are:

  1. Target-URC Network (TUN) - between the URC and the Target
  2. Resource-URC Network (RUN) – between the URC and sources of supplemental Resources (optional)

Essential components

Only 3 of the components shown in Fig. 1 are actually needed for a URC to function. The rest are optional. The three essential components are:

Target URC synchronization

The URC framework assumes a fine-grained two-way synchronization of the target's state between the target and any URC that has a control session open with it. On the target side the sockets are responsible for propagating relevant changes to the connected URCs and to receive requests to change the target's state.

The purpose of the user interface socket is to expose the relevant information about a target so that a user can perceive its state and operate it. There are three types of socket elements whose state is synchronized between a target and a connected URC. The variables are state variables of the target and can typically be changed by the URC. The commands represent function calls on the target that can be invoked by the URC. The notifications propagate special target states in which normal operation is suspended on the target.

URC and component interaction

URCs can take many different forms. The following brief examples show how the components of the Universal Remote Console framework interact. See ISO/IEC 24752-1 for a more detailed description of the different components of the URC framework.