Copyright © 2011W3C® (MIT,ERCIM,Keio), All Rights Reserved.W3Cliability,trademark anddocument use rules apply.
This document lists the design goals and requirements that potentialW3C 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 currentW3C publications and the latest revision of this technical report can be found in theW3C 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 theWeb 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 theDevice 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 theWeb and TV Interest Group as an Interest Group Note. If you wish to make comments regarding this document, please send them topublic-web-and-tv@w3.org (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 thecharter.
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. aDVR) or accessed via a network connectedSTB. A home network content discovery and control protocol is used by theDVR andSTB 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. aDVR). 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 futureW3C 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 wordsmust,must not,shall,should andshould 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 ofconforming specifications.
Conforming specifications are ones that address one or more requirements listed in this document. Conforming specifications should attempt to addressshould 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 (seesection 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 specificationsshall set out requirements for an API that would enable interaction with those protocols.
Conforming specificationsshould 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. Neverthelessconforming specificationsshould 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 specificationsshould 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 specificationsshould provide a means for applications to discover devices in the home network capable of serving content (content servers). In addition,conforming specificationsshould 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 specificationsshould 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 specificationsshould provide a means for applications to expose and advertise services on the home network.
Conforming specificationsshould 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 identifiersshould be unique to a program, but common across multiple instance of the same program; andshould be consistent across different services and devices in different home networks.
Conforming specificationsshould 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 specificationsshould 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 specificationsshould provide a means to play back content advertised by a home network content server.
Conforming specificationsshould provide a means to play back live content advertised by a home network content server.
Conforming specificationsshould provide a means for controlling the playback of content from home network content servers to home network content players.Conforming specificationsshould 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 specificationsshould 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 specificationsshould 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 specificationsshould 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 specificationsshould 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 specificationsshould provide a means for an application to exchange messages directly via the home network with services discovered in the home network.
Conforming specificationsshould 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 specificationsshould support the content protection mechanism for a content item used by a content server in order to play back that content item.Conforming specificationsmust provide a graceful failure model when a content protection mechanism is not supported.
Conforming specificationsshould provide a means to transfer an application to a different user agent in the home network without requiring support of an application server.
Conforming specificationsshould 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 specificationsshould 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 specificationsshould allow access to home network devices and services only to trusted applications.
Conforming specificationsshould 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 (seesection 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 (seesection 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 (seesection 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 ifW3C 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 insection 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 forconforming 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 thatconforming 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 toW3C 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 (seesection 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 byconforming 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 themajor gap in the Open Web platform is thelack 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 (seesection 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 theDevice APIs Working Group Charter. Therefore it is proposed to provide this requirement document as an input for further work to theDevice 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 additionalW3C 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 moreW3C Working Groups.
This section include references to related works (prototypes, draft APIs, etc.) that have been produced by IG participants and are related to the use cases outlined in this document. Note that this section is informative and that the Web and TV Interest Group do not endorse any of the works listed in this section. Nevertheless the Web and TV Interest Group thinks that these related works contain useful ideas that could be discussed and expanded by a working group writing specifications addressing requirements enumerated in this document.
CableLabs is a not-for-profit research and development consortium that has cable operators as its members. While working on defining use cases and requirements as member of the Home Network TF of the Web and TV IG, some work has been done by CableLabs to experiment with possible ways to support use cases discussed by the Home Network Task Force in an HTML5 user agent. See CableLabs Revised Home Networking API [CLABS-HNAPI].
Opera proposed a low-level API to address some of the use cases outlined in this document and discussed by the Home Network Task Force of the Web and TV IG. This section contains an outline of the proposal as presented to the DAP WG.
A number of devices connected within a local network today advertise service API endpoints to the network, the primary purpose of which is to allow other devices within the same local network to connect, control and interact with those services through the provided interfaces.
It is possible today to build native applications that can both discover and communicate with such local-networked services. There is currently no standard or, indeed, any particularly easy way to discover or interact with local devices and services from a web application without significant technical hackery on the part of the user (see 'current practice' below).
We need a way for a user agent, acting as a broker between a user and a web application to discover services via common discovery protocols (i.e. SSDP and DNS-SD) within the local network, allow web applications to request a particular service type (or class of service) that it wishes to interact with and then for a user to authorize that connectivity based on services found in their local network matching the requested service type. The solution should then enable communication to occur between the authorized web application and the local-networked service, bypassing or overriding the same-origin policy rule if necessary to allow for safe and secure cross-domain communication.
Assuming the user is able to obtain a local-networked service's host and port information, which in itself is a hard task for both technical and non-technical users alike, the user must then provide that host and port information to the web application by entering such information in e.g. a web form and submitting said form. Having got this far the web application, despite having all the information required to communicate with a local-networked device/service, is then likely to encounter another issue, namely the same-origin policy rule which prevents a web application from communicating with a networked device that does not share the same host and port origin combination as itself.
As a solution to this, CORS has been developed to enable cross-origin messaging from web applications. Within the home network, if the target networked device happened to provide the HTTP headerAccess-Control-Allow-Origin: *
then there is little problem with the browser now being able to communicate with the provided host and port.
However, the majority of local-networked services do not implement CORS and becauseAccess-Control-Allow-Origin: *
is generally a bad idea to enable within a local network, it is not really the ideal future-facing solution within local networks to ensure access is granted only to web applications that a user has explicitly authorized access to.
In the vast majority of use cases communication from a web application to a local-networked service is blocked or inherently insecure today due to one or more of the issues above being present in modern web browsers.
The current practice therefore does not fulfill the requirements of the initial problem and so we began to consider alternative approaches.
To counter the issues identified in the current practice above we developed a low-level API, produced incrementally over the course of the last few months, that allows a web application to request a particular service type (or class of service type) and for the user to then be able to authorize and connect a discovered matching service to the requesting web application. This enables a user-authorized web application to control, interact and synchronize content (and otherwise generally communicate) with home-networked services, negating the operational issues present in browsers today.
The proposed solution is available, see Networked Service Discovery and Messaging [DISCO-PROP].
A note on CORS: this API is intended to work with or without CORS support enabled in local-networked services. That is to say, CORS in combination with e.g. HTTP authentication schemes, assuming such a model is deployed widely in the future, may provide a good user authorization model for this API (perhaps even to the point of negating the need for any specialized Service Discovery user interfaces at all). As it stands, the proposed solution is intended to work with existing services deployed within local networks without shoe-horning all communications in to a future-only CORS model.
Disclaimer: This API proposal does not represent the consensus of any standards group and should not be referenced as anything other than an unofficial draft which is a work in progress.
The BBC is non-profit, publicly funded broadcaster based in the UK that also engages in technical research. As part of its participation in the Home Network TF, the BBC has shared its own experimental API work that enables clients, including HTML user agents, to discover and communicate with television style devices within the home network.
This API defines a RESTful web service to be implemented by a television, set-top-box, or similar device. The data model represents programmes and sources of programmes in a relatively abstract way. The API in turn defines a uniform way to discover, identify, acquire (e.g. record) and control playback of programme content. There is also provision for starting and communicating with web or native applications running on the television. Applications using this API avoid having to deal with issues of codec, container format or transport protocol compatibility.
Documents providing background, an introductory overview and a draft specification of the API are available:
The BBC has prototyped various remote control and second screen experiences that use this API. These include:
The following documents briefly describe some of these applications:
Telecom ParisTech is a French academic institution where research relevant to HNTF on combiningW3C widgets, SVG and UPnP went on from 2008 to 2010. The work has been implemented as part of the open source multimedia player GPAC (seeGPAC) and is publically available. All use cases contributed by Telecom ParisTech to HNTF have been implemented in that system, but for the "pull migration" use case.
This work is described in the following papers:
CEA-2014 [CEA-2014] describes web based Remote UI applications for CE devices. CEA-2014 is referenced by multiple Standards Development Organizations to provide ecosystem specific Remote UI solutions.
CEA-2014 leverages existing web technology standards including XHTML for screen layout and user interactions; and ECMAScript for interactive application support. In addition, CEA-2014 provides additional standardized interfaces addressing the following areas:
CEA-2014 defines a mechanism for a Remote UI server to list available applications. This mechanism is based on an XML schema (XML UI Listing) which provides application descriptive metadata. In addition, a CEA-2014 server may include metadata for multiple versions of the same Remote UI application with differing client capability requirements. A Remote UI client system may then choose a version of a Remote UI application which best matches its capabilities. See Client Capability Matching in the following section
CEA-2014 defines XML metadata describing the capabilities of a connecting Remote UI client system. These capabilities include Input Support (Remote Control, Keyboard, etc.), AV Player Capabilities, Client Display Capabilities (resolution, color space) and Digital Rights Management capabilities. When a Remote UI client connects to a server, it will first examine the capability requirements of the Remote UI applications offered and will connect to a version that best matches its capabilities. During connection, the Remote UI Client provides its capabilities to the server. The server may modify the web-page provided to better match the connecting client's capabilities or may reject the connection if it cannot tailor the page to support the client's capabilities.
CEA-2014 defines a standardized Audio-Video Player object. The AV Player object provides methods for control of AV playback (Play, Stop, Pause, Seek and Loop). In addition the AV player provides a "lock-out" mechanism disables end-users from skipping "required content". AV player callbacks are defined to notify web-pages of various playback related state-changes. The CEA specification defines a state-machine for the AV player so web-pages can rely on predictable AV player state transition behavior.
CEA-2014 defines a framework to allow a Remote UI application (web-page) to communicate with DRM Agent(s) installed on a Remote UI client. This DRM framework allows generic messaging between the web-page and DRM Agents installed on the Remote UI client.
Note: CEA-2014 does not define the specifics of any particular DRM system beyond listing of available Digital Rights systems in Remote UI client capabilities.
CEA-2014 defines a framework for Remote UI applications to initiate the download of content. Once the download process is started the Remote UI client can switch to other Remote UI applications. In addition to providing status of download operations, CEA-2014 defines a Content Access Descriptor XML schema to describe content to be downloaded. Since Content Access Descriptors are XML documents they may be associated with URLs and embedded into Remote UI applications.
CEA-2014 defines a UPnP / DLNA binding so that web-pages can discover and control home network devices. The binding allows Remote UI applications discover, manage events and command UPnP and DLNA devices. In conjunction with the UPnP / DLNA Home Network Framework the Standardized AV Player is required to comply with DLNA media transport requirements. The combination makes CEA-2014 Remote UI clients suitable to support both UPnP and DLNA applications.
The ability for Remote UI applications (originating from outside the home) to access home network devices presents significant security and privacy concerns. CEA-2014 requires implementation of a variety of security mechanisms to protect end-users Remote UI applications performing unauthorized access to Home Network devices.
CEA-2014 supports the embedding of SVG markup within XHTML pages and vice versa. CEA-2014 addresses some issues with regard to differing DOM models and event handling between SVG and XHTML resulting from the combination of SVG and XHTML content on the same web-page.
CEA-2014 provides the capability for servers to request Remote UI clients display web-pages. An "event" mechanism is defined so that Remote UI clients and servers can classify these Notification messages. In addition CEA-2014 clients may recover previously sent notifications that may have been missed while the Remote UI client was not present on the network.
CEA-2014 provides a framework for a Remote UI application to save its state and POST it to a Remote UI server. The saved information consists of a reference to the original Remote UI application URL and metadata describing the saved state of the application. The save state may be restored by a different device effectively allowing the application to be moved to a different Remote UI client. The save-restore process may be triggered by the Remote UI application itself or by a request initiated external to the Remote UI client.
This section discusses devices compliant to UPnP (Universal Plug'n Play) architecture. This architecture has been developed over +10 years by member companies of the UPnP Forum. Although this section focuses on UPnP device models defined for AV (Audio-Visual) devices, UPnP defines a number of other standard device models for Home Network Gateways, Telephony, Remote Access, and Home Automation applications.
Further information concerning membership in the UPnP Forum may be obtained onUPnP Web site.
UPnP AV (Audio-Visual) Architecture [UPNP-AVARCH2] provides an informative overview of the UPnP model for media serving and media rendering devices. It is a good starting point for readers becoming familiar with UPnP architecture related to audio-video device support.
UPnP Device Architecture [UPNP-DEVICEARCH] provides the basic mechanisms for discovering, advertising, and commanding of UPnP devices. All UPnP Devices implement and comply with the requirements in this specification.
The UPnP MediaRenderer specification [UPNP-MR3] defines the required and optional services of a standard UPnP MediaRenderer device.
The following references define the required and optional services provided by a standard UPnP MediaRenderer device:
The UPnP MediaServer device specification [UPNP-MS4] defines the required and optional services of a standard UPnP MediaServer device.
The following references define services provided by a standard UPnP MediaServer device:
Ericsson Labs is the part of Ericsson Research that focuses on iterative open innovation and experiments with new technologies, services and business models. The purpose of Ericsson Labs is to support Ericsson’s vision of the Networked Society by working with partners including technology providers and third-party developers.
Ericsson Labs provides access to experimental APIs in their infancy so that developers can create new, innovative services. "Web Technologies" is one of the major categories of experimental APIs and the category contains API named "Web Device Connectivity".
The Web Device Connectivity API enables you to connect end users’ devices to the Web. It provides end users with new experiences of devices in their home networks being a part of the Web and web sites can seamlessly make use of those home devices. For example, an web site or a blog can access the viewer's DLNA enabled TV and let the viewer choose his/her DLNA enabled TV to play the contents on the web site.
Web Device Connectivity platform consists of a software running inside each end users' home network and interacting with home devices, in-cloud servers aggregating device information and enforcing security policy, and a Javascript library providing API for web sites. Developers can create web sites, by including the Javascript library, which accesses devices in end users' home networks through the Ericsson Labs Web Device Connectivity platform.
No normative references.