Copyright © 2011 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules apply.
This document lists the design goals and requirements that potential W3C recommendations should support in order to enable access to services and content provided by home network devices on other devices, including the discovery and playback of content available to those devices, both from services such as traditional broadcast media and internet based services but also from the home network.
This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.
Recommendations in this document are the result of discussion in the Home Network Task Force of the Web and TV Interest Group. The Home Network Task Force believes that most of these recommendations listed in this document will be refined and addressed within the Device APIs Working Group, as part of its work on a devices and services discovery API standard. In particular, while the Home Network Task Force may continue to discuss areas of home networking scenarios that have not already been raised in this document, it does not anticipate further work on the scenarios and requirements highlighted in this document within the Web and TV Interest Group.
This document was published by the Web and TV Interest Group as an Interest Group Note. If you wish to make comments regarding this document, please send them to [email protected] (subscribe, archives). All feedback is welcome.
Publication as an Interest Group Note does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.
The disclosure obligations of the Participants of this group are described in the charter.
There is an increasing amount of personal and streaming (broadcast) content that users would like to be able to access from any device in the home (personal computers, tablets, mobile phones, TVs and others).
Growing numbers of consumer electronic devices such as TVs and mobile phones can access internet based services as well as content originating from both home network devices and broadcast services. For example, many commercial video providers currently provide the ability for a user to access content stored on a home network device (e.g. a DVR) or accessed via a network connected STB. A home network content discovery and control protocol is used by the DVR and STB to provide this access, through a native user interface, to other devices in the home (e.g. PCs, TVs).
The dominant scenario today is for a home network device to both discover and playback home network content. Examples of these devices may include personal computers or connected televisions. This is commonly referred to as a 2-Box model. An emerging scenario is for the content discovery and control to take place on a separate handheld device, such as a smartphones or tablets. The handheld device then instructs a content player (e.g. a TV) to playback content from a content server (e.g. a DVR). This is referred to as the 3-Box model.
In all use cases, security mechanisms are made available to protect user privacy and content owners’ rights.
There is no standardized way to build a web application that can use content discovery and control protocols to access the content on other devices in the home network. This document lists the design goals and requirements that future W3C recommendations need to address in order to address this problem. This would enable content providers to deliver web applications to any conforming device in order to enhance and harmonize the user experience.
As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.
The key words must, must not, shall, should and should not in this specification are to be interpreted as described in RFC 2119 [RFC2119].
This specification only applies to one class of product: W3C Technical Reports. A number of specifications may be created to address the requirements enumerated in this document. In some cases the union of multiple parts of different specifications may be needed to address a single requirement. Nevertheless, this document speaks only of conforming specifications.
Conforming specifications are ones that address one or more requirements listed in this document. Conforming specifications should attempt to address should level requirements requirements unless there is a technically valid reason not to do so.
This section enumerates the requirements that conforming specification(s) would need to address to enable discovery and control of devices and services in the home network by a user agent. These requirements are directly motivated by the use cases described in this document (see section 5. Use Cases) and are based on an interactive process of feedback from the discussions in the Home-Network Task Force of the Web and TV Interest Group.
Several home network protocols (e.g. UPnP and M-DNS/DNS-SD) are in popular use today for advertising and sharing content and services in a home network environment. Conforming specifications shall set out requirements for an API that would enable interaction with those protocols.
Conforming specifications should provide a means for applications to discover services advertised by devices and applications in the home network. Details of the advertising protocols are out of scope for this document and the type and number of supported discovery protocols is user agent dependent. Nevertheless conforming specifications should provide a means for application search for specific services and to be able to determine the means by which it should communicate with that service.
Conforming specifications should provide a means for applications running in different user-agents to discover each other directly via the home network. Details of the advertising protocol are out of scope for this document.
Conforming specifications should provide a means for applications to discover devices in the home network capable of serving content (content servers). In addition, conforming specifications should provide a mechanism to retrieve a list of the available content, provide additional information (metadata) about the content and to support negotiation of a supported content format between content servers and content players.
Conforming specifications should provide a means for applications to expose content descriptions to a service on the home network. Other devices or applications on the home network should be able to play back the content served by the application and retrieve additional metadata about the served content.
Conforming specifications should provide a means for applications to expose and advertise services on the home network.
Conforming specifications should provide applications with a means to identify and thereby recognize a program that may be available from devices or services on the home network, when such an identifier is available. Such identifiers should be unique to a program, but common across multiple instance of the same program; and should be consistent across different services and devices in different home networks.
Conforming specifications should enable applications to know what content can be presented by a device or service on the home network and control the playback of that content presented, in such a way that the application does not have to handle:
Conforming specifications should enable applications to control recording of content presented by devices or services within the home network, in such a way that the application does not have to handle:
Conforming specifications should provide a means to play back content advertised by a home network content server.
Conforming specifications should provide a means to play back live content advertised by a home network content server.
Conforming specifications should provide a means for controlling the playback of content from home network content servers to home network content players. Conforming specifications should support means to negotiate a supported content type format that is available on the content server and is suitable for being played on the content player.
Conforming specifications should provide a means for applications to co-time the presentation of their own content (audio, video or other) with the timeline of a programme being played back on another device, including programmes being received via broadcast. Conforming specifications should provide applications with a means to be aware of the progress (time within the programme) of the playback of media content on a remote device/service, including programmes being received via broadcast.
Conforming specifications should support any protocols or optional protocol features that enable applications to be aware of the progress (time within the programme) of the playback of a programme on a remote device to within frame accuracy (1/25th or 1/30th second) or better. Conforming specifications should support the ability to determine an estimate of the level of accuracy with which timing information about media playback on a remove device/service is conveyed to applications.
Conforming specifications should provide a means for an application to exchange messages directly via the home network with services discovered in the home network.
Conforming specifications should provide a means for applications to exchange messages directly via the home network with other applications running on a different user agent in the home network.
Conforming specifications should support the content protection mechanism for a content item used by a content server in order to play back that content item. Conforming specifications must provide a graceful failure model when a content protection mechanism is not supported.
Conforming specifications should provide a means to transfer an application to a different user agent in the home network without requiring support of an application server.
Conforming specifications should support transfering an application to a different user agent in the home network without requiring support of an application server. The request is initiated by the target user agent.
Conforming specifications should provide a means to define the trust level of an application. Determining the trust level may involve interaction with the user and the use of security mechanisms such as password, PIN etc.
Conforming specifications should allow access to home network devices and services only to trusted applications.
Conforming specifications should prevent unauthorized transfer of information outside the home network.
This section is a non-exhaustive list of use cases that would be enabled by one (or more) specifications implementing the requirements listed above. Each use case is written according to the following template:
An application as an interface to a service: the application provides a remote user interface for a device (light switch, HiFi volume control, radio station chooser, etc.) or a service on a device (remote control on the media player software on a computer).
Possible implementation:
There is no standard interface to discovery protocols in existing standards implemented in connected devices. There is no standard interface to service communication protocols in existing standards implemented in connected devices. What should be standardized is:
In order to interface with a service, the application first needs to discover the service (or the device, then the service on the device).
Low Level | High Level |
---|---|
Determine list of discovered services | section 4.2.1 Service Discovery |
Determine list of discovered services | section 4.2.1 Service Discovery |
Send a message to a discovered service | section 4.3.8 Service Communication |
Listen to messages (possibly unsolicited) from a discovered service | section 4.3.8 Service Communication |
A document as host for discovered content: e.g. the document describe content provided by a local, discovered device or service.
Rendering a media on another device than the one hosting is the basic step to enable more complex use cases.
Low Level | High Level |
---|---|
Support a document which displays discovered content | section 4.3.3 Playback of Content |
An application moving across HNTF user agents in a decentralized situation (local application, without a server).
A radio service is split into a radio application which resides typically on a HiFi, TV, personal music player or computer, and a radio controller application which resides on a device with intuitive interaction capability such as a phone, computer or tablet. The radio application is implemented as a document exposing a service interface on the network, and has a state that needs preserving if the document is migrated. The radio controller application is a pure interface, and does not have its own state.
The radio application does not have a visual interface. The radio application exposes a service of type JCDsRadioApp with seven possible messages:
The radio application is running on a TV set.
The radio controller application has a visual interface, comprising:
The radio controller application is running on a smartphone. The radio controller application looks for a service called JCDsRadioApp by using the HNTF discovery mechanism, then establishes a connection with the above application. The radio controller application gets the radio name, volume, play state of the radio application and displays that information.
The stage is now set.
The user wants to move from the TV in the main room to the computer in her office:
End of migration.
When moving the radio document, the following needs to be preserved:
Another possible example is a multi-user game, e.g. with lots of players sending location and activity information about their character/cars. Upon migration, the game state needs to be transferred to the new device, and the connections to other players need to be reestablished.
This use case depends on discovery. This is a refinement of ISSUE-15, where the migrated document uses a service rather than exposes a service.
Low Level | High Level |
---|---|
User-Agents support a service to transfer a running Application to different User-Agent. | section 4.4.1 Push Migration |
Applications support the ability to save their current state and provide this information via a contextURI. | section 4.4.1 Push Migration |
Applications support the ability to restore their state on a different User-Agent using state information provided by a contextURI. | section 4.4.1 Push Migration |
An application spawning other applications on other devices and communicating with them: e.g. the TV set receives and renders an application implementing some voting; the application discovers multiple phones in the home, proposes to activate voting interfaces on each of the viewers' phones, communicates with the voting interfaces, collates votes and sends them back to the channel's voting service.
Possible implementation:
This use case does not require new technology, but reuses technology required by other use cases. Technologies required by other use cases are:
This use case requires:
A few sketches for clarification:
This is the generic version of a crucial "second screen" usage scenario.
As there are more devices in the home, some generic and some task-specific, and with varying capabilities (including different UI methods), there is a growing need to spread an application across different devices to achieve service distribution. But the service usually "enters" the home network through one particular device. The service running entirely on the initial device, as part of other use cases, can discover its environment and determine that other devices could meaningfully contribute to the quality of experience. From then on, the service needs to send part of "itself" to other devices.
Low Level | High Level |
---|---|
A document exposes an interface to a service | section 4.2.1 Service Discovery
section 4.3.8 Service Communication |
A document as an interface coordinating action between other services. In the most obvious example, a document discovers media content sources and media players. The document allows the user to select a source and a player, then control playback (Play, pause, rewind, etc.) of the content to the player.
Assets offered by one service (on one device) can be consumed by another service (on another device) and controlled by a separate controlling document (on a third device). Vendors can offer control services to manage services across the whole home.
This is similar to Service User Interface (see section 5.1 U1. Service User Interface) but it explicitly manages services between independent devices, multiple simultaneous
Low Level | High Level |
---|---|
An application may invoke services to control devices on other User-Agents separate from the User-Agent issuing the service requests | section 4.3.5 3 Box Model |
An application exposes a service on the home network. In order to allow this with some technologies, it may be necessary for the HNTF user agent to advertise itself on the HN as a device. For example, an application rendered on a connected TV has access to the connected TV API for EPG information. Other devices on the HN do not have access to this information. The application implements a service exposing the EPG information and makes it discoverable by other devices.
Possible implementation:
Neither application A or B know the actual nature of the other. They may have an IP address, and they share a service type.
Allowing sharing resources other than content, such as a capability (a large screen, a sensor) or an "authorization" (permission to use a restricted API).
This is a prerequisite to applications discovering each other without a "middle man": one of the two applications exposes a service that the other application may discover.
Low Level | High Level |
---|---|
An application can cause a User-Agent to act as a device which exposes services | section 4.2.5 Services Advertisement |
An application discovers a service. Discovery means that after discovery, the application has:
Very basic use case, on which all other use cases depend. There is no existing way for an application to discover services and communicate with them, if the author did not have the address of the service.
Low Level | High Level |
---|---|
An application can determine allowable messages and parameters provided by a service | section 4.2.1 Service Discovery |
An application can send messages to a service | section 4.3.8 Service Communication |
An application can receive messages from a service | section 4.3.8 Service Communication |
An application moving across devices in a decentralized situation (local application, without a server).
I start using my phone for the user interface to a device and then my tablet becomes available, so I move the interface application to the tablet. The application in question is an HNTF application, which means it has discovered services and has connections to some services and a history of execution. Just restarting the application on another device would lose the execution state, the existing connections, etc...
There is no way with current standards and in the absence of a central server to achieve the saving and transfer of the execution state of a widget, so there is no way to start an application on a device, switch devices and restart the application on the new device, keeping the exact same execution state.
This use case depends on discovery.
Low Level | High Level |
---|---|
User-Agents support a service to transfer a runningapplication from another User-Agent to itself | section 4.4.1 Push Migration |
Applications support the ability to save their current state and provide this information via a contextURI | section 4.4.1 Push Migration |
An application moving across devices in a decentralized situation (local application, without a server), the migration being initiated on the target device.
I start using my phone for the user interface to a device and then my tablet becomes available, so I move the interface application to the tablet by interacting with the tablet. The application in question is an HNTF application, which means it has discovered services and has connections to some services and a history of execution. Just restarting the application on another device would lose the execution state, the existing connections, etc...
Same as ISSUE-15, with the additional twist of triggering the migration from the target device rather than the source device.
Low Level | High Level |
---|---|
User-Agents support a service to notify a running application of a request to transfer itself to another User-Agent | section 4.4.2 Pull Migration |
Applications support the ability to save their current state and provide this information via a contextURI | section 4.4.2 Pull Migration |
Where available, applications should be able to determine and refer to programmes using a unique and consistent identifier. If the same programme is available from multiple devices or services, the programme should have the same identifier associated with it across all devices or services.
Scenario: An application, wants to present more information associated with a particular programme that the user is currently viewing on their television, without the television acting as an intermediary that serves that additional information.
section 5.11 U11. TV Control (for outlined user scenario)
Low Level | High Level |
---|---|
Provide consistent program identifiers which are meaningful across multiple devices | section 4.2.6 Media Identification |
Provide a means to obtain metadata corresponding to program identifiers | section 4.2.6 Media Identification |
An API, or service, for simplified control of key functionality of television devices, including those with integrated broadcast receivers and limited or no media streaming capabilities. The application defines its own user interface, independent of the user interface of the television device.
Application developers would benefit from a simplified API or services that provide:
It is also desirable to be able to control other common aspects of television functionality through the same API.
The target of the API would be a processing engine on the home network. For a Javascript API this processing engine could be incorporated into the user agent. Alternatively, it could be implemented by any other device on the home network, including the television device itself. For the latter case, the user agent must be able to discover and communicate with the processing engine in order to execute the functions of the API.
The processing engine may, when appropriate, utilize existing home networking protocols to perform its function. For example: it may use UPnP AV services to discover and stream content.
Scenario 1: Basic programme guide application: The application uses the API to perform the following tasks:
Extension to scenario 1: Control of other television functions:
Scenario 2: A web site with material supporting a particular programme wants to be able to offer to play the programme on a television if it is available. A possible interaction (via the API):
Each of the interactions described should be ideally achievable a single call to an API or service method.
Low Level | High Level |
---|---|
Provide a directory of programs a rendering device can play | section 4.3.1 Control of Content Players |
Provide a service to select a program on a rendering device to play | section 4.3.1 Control of Content Players |
Provide services to control other aspects of a rendering device such as Seek, Volume, etc. | section 4.3.1 Control of Content Players |
Applications should be able to time synchronize their activity with the time-line of a programme being played on a television or other home media rendering device.
Application developers will benefit from having a single simple API that provides a unified interface to this functionality, irrespective of the means by which the programme is being delivered to, or played by, the television device.
The application is running on a different device from where the programme is being played. This could be a laptop, mobile phone, tablet, etc. Both devices are on the same home network. The device playing the programme may be a television or other media rendering device. The programme being played may be being obtained by a variety of different means:
The target of the API would be a processing engine on the home network. For a Javascript API this processing engine could be incorporated into the user agent. Alternatively, it could be implemented by any other device on the home network, including the television device itself. For the latter case, the user agent must be able to discover and communicate with the processing engine in order to execute the functions of the API.
The processing engine may, when appropriate, utilize existing home networking protocols to perform its function. For example: it may use UPnP AV services to query and set the playback time index.
An API meeting these requirements may enable an application to:
Scenario: An application wants to present a slideshow of content relating to the programme the user is watching on their television. As the programme progresses, the slideshow automatically moves onto the correct slide for any given point in the programme. If it is possible to seek within the programme timeline (because the programme is not being watched from a live broadcast), the user can use the application to jump to a different point in the presentation and the television will also seek to the corresponding segment of the programme.
Low Level | High Level |
---|---|
Provide ability to generate notification to application when a particular playback time is reached | section 4.3.6 Time-synchronization |
Provide the ability to position playback to a specified time-index | section 4.3.6 Time-synchronization |
Obtain the current playback time-index | section 4.3.6 Time-synchronization |
This use case is a specialization of the use case Time Synchronisation (see section 5.12 U12. Time Synchronization)
An application should be able to synchronize the presentation of its own content with a high degree of accuracy to the timeline of a programme being played on a television or other home media rendering device. The level of accuracy should be sufficient to achieve 'lip-sync' between audio and video (typically within 1 to 2 video frames or tens of milliseconds).
In addition to the functions described in the Time Synchronisation use case; the API used by the application should be able to:
The processing engine that implements the API may utilize existing home networking protocols to achieve the required accuracy. A likely necessary component will be the synchronization of clocks between the television or media rendering device and the device on which the application is running. Possible protocols that might be used to achieve this include: Precision Time Protocol (IEEE 1588-2002) [IEEE1588], IEEE 802.1AS [IEEE802-1AS], UPnP Precision Time Synchronization [UPNP-AVT3].
Applications will benefit if the API presents a simple unified set of functions such that the application does not need know which protocols are being used.
Scenario: An application plays alternative audio that is time synchronized to a programme that the user is watching. The synchronization is sufficiently accurate to maintain 'lip-sync' between the alternative audio and the programme video. The alternative audio may be delivered to the application independently of the television device - such as via a direct stream from a broadcaster's internet based server.
This use case is a specialization of the Time Synchronization use case (see section 5.12 U12. Time Synchronization)
Low Level | High Level |
---|---|
Determine the time synchronization capabilities of home-network devices | section 4.3.7 Accurate Time-synchronization |
Provide the capability for applications to synchronize with playback content to approximately frame resolution | section 4.3.7 Accurate Time-synchronization |
Provide the capability to precisely synchronize multiple content streams | section 4.3.7 Accurate Time-synchronization |
This use case is about the bi-directional communication between web applications via the local IP network e.g. Home IP network.
Assumptions:
User Scenario A - Single User:
User Scenario B - Multiple Users:
User Scenario - Interactive Quiz:
Use case (System Interactions):
Implementation examples:
Additional comments:
The “Local Link” enables applications to exchange message, e.g. String, Blob, via the local network directly. Without the “local Link”, the applications which are running on different devices can in-directly communicate via a service on the Internet. But, the “Local Link” has the following benefits:
There are some standards of local discovery, e.g. UPnP, Bonjour, WS-Discovery, but there is no standard of the JavaScript API which enables communications between Web applications in the manner of application/service agnostic.
What needs to be standardized:
Any other use cases related to the local IP network discovery since the discovery is also application/service agnostic
Low Level | High Level |
---|---|
Support applications communicating with each-other via ad-hoc messages | section 4.3.9 Application Communication
section 4.2.2 Application Discovery |
Enable a User-Agent to act as a Home Network Media Player
The User-Agent acts as a Home Network Media Player device. For example (steps further detailed below):
Detailed steps for "List available Home Network Media Server devices":
Detailed steps for "List available content on a Home Network Media Server":
Detailed steps for "List available content on a Home Network Media Server matching specified metadata criterion":
Detailed steps for "Play content from a Home Network Media Server":
<video>
element.<video>
element @src
(or creates <source>
element as child element)Detailed steps for "View EPG data from a Home Network Media Server":
Detailed steps for "Tune and play live programs from a Home Network Media Server capable of streaming live content":
<video>
element referencing the channel's streaming URL provided by the Channel Item metadata.Detailed steps for "Select and play recorded content from a Home Network Recording device":
Notes for "Select and play Time-Shift recorded content from a Home Network Recording device":
Detailed steps for "Select and play Time-Shift recorded content from a Home Network Recording device":
This use-case provides the basic framework for generic access to home network devices. It is "agnostic" towards the underlying functionality of the devices being controlled.
Low Level | High Level |
---|---|
Application can obtain and display descriptive metadata for playback content | section 4.2.1 Service Discovery
section 4.2.3 Content Discovery |
Application can obtain and display other descriptive metadata such as Electronic Programming Guides | section 4.2.1 Service Discovery
section 4.2.3 Content Discovery |
Application can select content binary formats which match the User-Agent’s supported playback formats | section 4.3.3 Playback of Content |
Application can play content from Home Network stored content sources | section 4.3.3 Playback of Content |
Applications can play live content from Home Network streaming sources | section 4.3.4 Playback of Live Content |
Applications can play content from Home Network recording sources | section 4.3.3 Playback of Content |
Enable a User-Agent to act as a Home Network Media Server.
Scenario: The User-Agent acts as a Home Network Media Server device. For example:
Detailed steps for "Create a discoverable Home Network Media Server device":
Detailed steps for "List available content that the User-Agent chooses to make available on the Home Network":
Detailed steps for "Provide descriptive metadata (title, description) for this content":
Detailed steps for "Provide multiple binary formats for this content":
Detailed steps for "Provide functionality to allow other User-Agents to search for content matching specified metadata criteria":
Detailed steps for "Notify User-Agents of changes to available content":
Existing Home Network interfaces do not (by scope/tradition) standardize user interface control. However, the combination of HTML markup and Javascript allow both access to Home Network devices functions and access to very capable user interface resources.
Why were you not able to use only existing standards to accomplish this?
What might you suggest could be standardized?
This use-case provides the basic framework for generic access to home network devices. It is "agnostic" towards the underlying functionality of the devices being controlled.
Low Level | High Level |
---|---|
Applications can cause a User-Agent to act as a Home Network media server | section 4.2.4 Content Advertisement |
Applications support services which provide metadata describing available content | section 4.2.4 Content Advertisement |
Application supports services which allow searching for content metadata matching specified criteria | section 4.2.4 Content Advertisement |
Application supports services which notify clients of changes in available content or content metadata | section 4.2.4 Content Advertisement |
Content descriptions support offering content in multiple binary formats | section 4.2.4 Content Advertisement |
Enable a User-Agent to control other media oriented Home Network Devices (3-box model).
Scenario: The User-Agent commands other media oriented home network devices. For example:
Detailed steps for "Direct a Home Network Media Rendering device to play content stored from a Home Network Media Server":
Detailed steps for "Direct a Home Network Media Rendering device to play live content from a Home Network Media Server capable of streaming content":
Detailed steps for "Control Home Network Media Renderer attributes: Brightness, Contrast, Volume, etc.":
Detailed steps for "Control Home Network Media Renderer multiplex stream selection: Closed Captioning, Language, Subtitling and Camera Angles":
Existing Home Network interfaces do not (by scope/tradition) standardize user interface control. However, the combination of HTML markup and Javascript allow both access to Home Network devices functions and access to very capable user interface resources.
Why were you not able to use only existing standards to accomplish this?
What might you suggest could be standardized?
This use-case provides the basic framework for generic access to home network devices. It is "agnostic" towards the underlying functionality of the devices being controlled.
Low Level | High Level |
---|---|
Application allows a User-Agent to discover and control media playback on other Home-Network Devices | section 4.3.5 3 Box Model
section 4.3.1 Control of Content Players |
Enable a User-Agent to control a Home Network Recording Device.
Scenario: The User-Agent controls a Home Network Recording device. For example:
Detailed steps for "Request the recording device capture content based on simple time/date criteria":
Detailed steps for "Request the recording device capture content based recurring time/date criteria":
Detailed steps for "Request the recording device capture content based on an EPG description":
Detailed steps for "Request the recording device capture content based on a metadata description":
Detailed steps for "Provide controls to suspend/restart/cancel planned recording activities":
Detailed steps for "Provide status information for current/future recording activities":
Detailed steps for "Provide access to recorded program descriptions and content":
Existing Home Network interfaces do not (by scope/tradition) standardize user interface control. However, the combination of HTML markup and Javascript allow both access to Home Network devices functions and access to very capable user interface resources.
Why were you not able to use only existing standards to accomplish this?
What might you suggest could be standardized?
This use-case provides the basic framework for generic access to home network devices. It is "agnostic" towards the underlying functionality of the devices being controlled.
Low Level | High Level |
---|---|
Application supports various recording schedules: Time of Day, Electronic Programming Guide, Metadata matching | section 4.3.2 Control of Content Recorders |
Application provides status information for current and pending recording activities | section 4.3.2 Control of Content Recorders |
Application provides ability to cancel, suspend, and restart pending recording activities | section 4.3.2 Control of Content Recorders |
Application provides access to recorded content | section 4.3.2 Control of Content Recorders |
Use cases U15, U16, U17, U18 and U1 describe functionality implemented by existing UPnP/DLNA home network devices in general terms. However, there is an existing install base of UPnP/DLNA compliant devices and the associated SDOs (UPnP Forum, DLNA) continue actively develop additional device related specifications. It would be beneficial to the end-user community if W3C User-Agents provided access to UPnP/DLNA devices without requiring any modification to the existing install base of UPnP/DLNA compliant devices.
Scenarios:
A summary of UPnP specifications relevant to this use case is provided in section 8.5 Universal Plug'n Play (UPnP) Reference.
Low Level | High Level |
---|---|
Application supports access to UPnP/DLNA devices without modification of existing deployed devices | section 4.1.1 Compatibility with widely deployed standards |
Application support UPnP devices not related to content playback | section 4.1.1 Compatibility with widely deployed standards |
Enabling application access to Home Network devices and content available on such devices raise several security and privacy concerns. Addressing user security and privacy is of primary importance for conforming specifications. This implies that some features may have to be "restricted" in order not to compromise user security. This may have an impact on the flexibility of these specifications, so a delicate balance between user experience and security needs to be found.
This section lists possible threats that conforming specifications may have to deal with and possible solutions to reduce risks for the user. This section is not intended as an exhaustive list of problems and solutions but is intended to provide some directions for further investigation.
The list of techniques listed in this section are not mutually exclusive but can be combined to provide more flexibility in handling user security.
Exposing information about services, content and devices in the Home Network to an application is a potential privacy leak. This could be minimized allowing the application to only get access to:
This mechanism could limit the application flexibility but increases the user privacy.
An alternative approach could be to limit the application ability to access this information until the application has been explicitly authorized by the User, or has successfully paired with the device.
One possible approach could be to consider each service as a separate "functionality" that the device has to authorize, in a similar fashion as Apps on mobile phones need to be authorized to access specific functionalities provided by the platform. The main difference in this case is that services available in the Home Network change over time, and also there isn't an installation process for web applications. Furthermore such approach would need a way to uniquely identify services (potentially across different home networking protocols) and expose relevant information for the user to understand what is actually authorizing. Such a technique would be then specification what would decide to enable a level interface for communication between devices/applications, which is not explicitly aware of different services.
One of the deliverable of the Home Network Task Force, according to its charter, is a set of recommendation to W3C Director for recommendation track work fulfilling some (or all) of the identified requirements.
This section summarizes the consensus of the TF about the desirable next steps and also to try to give an indication of relative priorities of the identified requirements.
The HNTF has made an attempt to categorize requirements based on the priority of addressing them to enable some of the use cases that are already available via other technologies or that are felt particularly important to have an enhanced user experience. Go without saying that all identified requirements are considered important by the Task Force; so the criteria followed is more the degree to which each requirements enables use cases that cannot be covered today rather than a value judgment of the importance of one requirement versus another (which differs by individual). By this "enablement" criterion, a feature that enables more use cases is higher priority than a feature that enables a limited subset of use cases.
The following requirements underpin most (if not all) of the use cases (see section 5. Use Cases) listed in this document, so they are considered the starting point for a technical work:
These alone are insufficient to fulfill most of the use cases and user scenarios identified. The use cases that seem most straightforward to address next and which also show the most immediate utility are those that support the ability to control and query media playback:
The requirements listed above focus on enabling applications to utilize existing home network services. The remaining requirements all enable use cases and scenarios that are of great interest and could be considered a "next step" of making it possible for applications to advertise and/or offer services. These requirements would allow leveraging web technologies and creating new types of application which mashes up Web and home networked devices.
While security requirements are of really high priority in general, some of the requirement listed in this document may or may not be covered by conforming specifications depending on the particular technical solution that will be designed to cover the requirements listed above. That is why the following requirements to no fall into the High/Low priority scheme:
Media Identification is a prerequisite for applications to be able to properly relate items of media content to a wider web of data/content. On the other end this requirement is orthogonal to the other discussed in this document and could be probably discussed in parallel with the work on the other requirements. That is why the following requirement is also not categorized:
A close analysis and discussion of the use-cases and requirements described in this document, lead the group to conclude that the major gap in the Open Web platform is the lack of means for an application to discover services and applications available on the home network. Filling such a gap will probably allow the coverage of most (if not all) requirements listed in this document (see section 4. Requirements).
Some concerns were raised if the discovery alone is enough to address advertisements requirements especially for support of existing protocols such as UPnP. In fact, advertisements itself could be implemented as a service so that applications can discover it and then register to be advertised on the network. Such a service may be provided by the UA itself (i.e. the functionality is provided by the UA but exposed as a service) or by an external device. It is not clear though (lacking implementations of this) if this approach will be enough flexible and efficient.
Furthermore to have an interoperable solution, a common advertising service would have to be standardized or JavaScript binding to already in use advertising services/protocols would have to be provided.
The discussion will have to be deferred to the point in time when a User Agent supporting discovery is available.
The HNTF believes that all the identified use cases and requirements are important to achieve a better convergence between the Web and TV. The TF also believes that all of them have an impact on the current web platform architecture so a recommendation track work would be needed to make sure that the identified requirements are covered in an open and interoperable way.
The HNTF believes that many of the requirements identified here may match the deliverables in the Device APIs Working Group Charter. Therefore it is proposed to provide this requirement document as an input for further work to the Device APIs (DAP) Working Group. However, if after a more detailed analysis, requirements detailed in this document are found to be out-of-scope for the DAP WG, then the HNTF recommends that additional W3C Working Groups be chartered to address the remaining requirements.
During his work, the HNTF did not have time to explore topics like the access to the home network from outside the home or concepts like group of homes. The TF believes that this is an area of extreme interest and would suggest the DAP WG (or any other working group working on the requirements extracted from this document) further investigate these topics. The Web & TV IG itself may consider discussing these topics and provide feedbacks to one or more W3C Working Groups.
No normative references.