- From: Jean-Claude Dufourd <jean-claude.dufourd@telecom-paristech.fr>
- Date: Fri, 20 Apr 2012 15:29:02 +0200
- To: public-web-intents@w3.org
- Message-ID: <4F91649E.3000504@telecom-paristech.fr>
As a member of the now closed Home Network Task Force, I am as interested in non-web intent providers as web intent providers. This is a scenario for a non-web intent provider, complete with discovery of devices. ---------------- Device1 is a PC with a browser running on it. The browser on Device1 is the Intents Registry and Dispatch entity. Device1 is UPnP capable. Device2 is a UPnP-enabled device providing a service, e.g. a DLNA AVTransport service. The task is to register an intent allowing Device2 to provide the Media AVTransport service, then to invoke the intent. ----OPTION 1: Device2 is the leader. Device2 comes up, discovers Device1 as Intents Registry and Dispatch REQ1: Device1 MUST advertize itself as Intents Registry and Dispatch in order to be discoverable by Device2. REQ2: Device2 MUST have a way to request Device1 to register intents. Device2 prepares one or a set of intent registrations and one or a set of intent service pages. Device2 publishes service pages on its own http server (part of the UPnP spec). Device2 communicates to Device1 to register the intents. Then appropriate intents have been registered, with implementations provided by service pages sitting on Device2. Device1 receives an intent invocation, selects the intent registered by Device2, loads the corresponding service page, and the service page deals with the UPnP communication with Device2, such as sending a "setTransportURI" or "play" action. ----OPTION 2: Device1 is the leader. Device1 comes up, launches the browser. Something on Device1 discovers Device2 and recognizes it as an Intent Provider. REQ3: Device2 MUST advertize itself as Intent Provider in order to be discoverable by Device1. Device1 gets the service description of the (e.g. AVTransport) service running on Device2 as part of the discovery exchange. Device1 processes the service description, creating one or a set of intent registrations and one or a set of intent service pages. REQ4: Device1 MUST have an http server to put the service pages. Then appropriate intents have been registered, with implementations provided by service pages sitting on the http server of Device1, service pages which use UPnP service on Device2. Device1 receives an intent invocation, matches it to one of the intents registered by Device2, loads the corresponding service page, and the service page deals with the UPnP communication with Device2, such as sending a "setTransportURI" or "play" action. ---------------- Please comment. Assuming both options are relevant, requirements are: REQ1: Device1 MUST advertize itself as Intents Registry and Dispatch in order to be discoverable by Device2. REQ2: Device2 MUST have a way to request Device1 to register intents. REQ3: Device2 MUST advertize itself as Intent Provider in order to be discoverable by Device1. REQ4: Device1 MUST have an http server running somewhere to put the registration and service pages. To satisfy these requirements, I wrote the following proposal. Maybe the group will decide that this is out of scope for this TF, or even out of scope of W3C, but if we want interoperability, some text like this needs to be in a standard somewhere. ----------------- Proposal: Addition of a section as follows. Section. Use of Web Intents with UPnP Subsection.1 Intent Registry and Dispatch A User Agent implementing both Web Intents Registry and Dispatch and UPnP MUST advertize itself as a UPnP service with a type "urn:w3c:web-intents:registry-and-dispatch:1". The SCPD of that service is: <scpd xmlns="urn:schemas-upnp-org:service-1-0"> <specVersion> <major>1</major> <minor>0</minor> </specVersion> <actionList> <action> <name>registerIntent</name> <argumentList> <argument> <name>*action*</name> <direction>in</direction> <relatedStateVariable>s1</relatedStateVariable> </argument> <argument> <name>*type*</name> <direction>in</direction> <relatedStateVariable>s2</relatedStateVariable> </argument> <argument> <name>*href*</name> <direction>in</direction> <relatedStateVariable>s3</relatedStateVariable> </argument> <argument> <name>*title*</name> <direction>in</direction> <relatedStateVariable>s4</relatedStateVariable> </argument> <argument> <name>*disposition*</name> <direction>in</direction> <relatedStateVariable>s5</relatedStateVariable> </argument> </argumentList> </action> </actionList> <serviceStateTable> <stateVariable><name>s1</name><dataType>string</dataType></stateVariable> <stateVariable><name>s2</name><dataType>string</dataType></stateVariable> <stateVariable><name>s3</name><dataType>string</dataType></stateVariable> <stateVariable><name>s4</name><dataType>string</dataType></stateVariable> <stateVariable><name>s5</name><dataType>string</dataType></stateVariable> </serviceStateTable> </scpd> Upon reception of the action "registerIntent", the User Agent SHALL do the same processing as if it had loaded an intent tag with attributes according to the action arguments. Subsection.2 Intent Provider A UPnP device that implements a UPnP Service which needs to be usable through the Web Intents mechanism MUST advertize an additional UPnP Service of type "urn:w3c:web-intents:provider:1". The SCPD of that service is: <scpd xmlns="urn:schemas-upnp-org:service-1-0"> <specVersion> <major>1</major> <minor>0</minor> </specVersion> <serviceStateTable> <stateVariable><name>dummy</name><dataType>string</dataType></stateVariable> </serviceStateTable> </scpd> Note: if the user agent advertizes itself as a UPnP service, it implements UPnP, and thus has an HTTP server and REQ4 is satisfied. Note: the SCPD requires a serviceStateTable, which cannot be empty, hence the dummy state variable... Best regards JC -- JC Dufourd Directeur d'Etudes/Professor Groupe Multimedia/Multimedia Group Traitement du Signal et Images/Signal and Image Processing Telecom ParisTech, 37-39 rue Dareau, 75014 Paris, France Tel: +33145817733 - Mob: +33677843843 - Fax: +33145817144
Received on Friday, 20 April 2012 13:29:37 UTC