- From: <Cathy.Chan@nokia.com>
- Date: Tue, 12 Feb 2013 20:53:11 +0000
- To: <richt@opera.com>, <public-device-apis@w3.org>
- Message-ID: <A46437648ECB3D4F852B077AFF9099F51C93CBB0@008-AM1MPN1-061.mgdnok.nokia.com>
> -----Original Message----- > From: ext Rich Tibbett [mailto:richt@opera.com] > Sent: Friday, February 08, 2013 12:09 PM > To: public-device-apis@w3.org > Subject: Re: [discovery-api] Consolidated comments and questions > > Jean-Claude Dufourd wrote: > > Le 8/2/13 16:21 , Rich Tibbett a écrit : > >> Jean-Claude Dufourd wrote: > >>> Le 8/2/13 15:27 , Rich Tibbett a écrit : > >>>> > >>>>> > >>>>> And also, my question about polling boils down to: what is the > >>>>> practical difference between "available" and "online" ? > >>>> > >>>> 'available' means that the service is present on the local network > >>>> but not yet shared with any web page. > >>>> > >>>> 'online' means the the service is present on the local network and > >>>> shared with a web page. > >>>> > >>>> We settled on these terms for lack of a better naming suggestion. > >>>> > >>>>> > >>>>> What is "online" ? A response to ping is characteristic of the > >>>>> device, not of the service. > >>>>> Is there anything standard in Bonjour and UPnP that can be used as > >>>>> a test of online-ness ? > >>>> > >>>> 'online' is a concept specific to this specification when a > >>>> NetworkService object is provided to a web page. At that point the > >>>> service is either online or offline for that web page to interact with. > >>>> > >>>>> Should the implementation poll for that ? > >>>>> Should the online attribute and events not be optional (SHOULD or > >>>>> MAY, rather that MUST now) ? > >>>> > >>>> There is some use to receiving these events for a web page. There > >>>> is the option for the web page to check the online-ness of a shared > >>>> NetworkService object by querying its .url attribute via an e.g. > >>>> XHR call. If that fails with a 4XX then they may be able to assume > >>>> that the service is no longer responding and hence offline. > >>>> > >>>> Since we're aware of general registration/deregitration/expiry of > >>>> Local-networked Services in the network at the underlying > >>>> implementation level we provide any status updates we can through > >>>> the 'online' attribute of the corresponding NetworkService object > >>>> as a convenience feature. > >>>> > >>>>> If it is too similar to "available", should it not be removed > >>>>> altogether ? > >>>> > >>>> It seems there's enough of a difference to warrant both events. One > >>>> is a generic notifier of the state of the network relating the > >>>> requested service types fired against NetworkServices. The other is > >>>> a specific notifier of the state of the service fired against its > >>>> corresponding NetworkService object. > >>>> > >>> JCD: I still do not understand the difference. > >>> You write: > >>> /'available' means that the service is present on the local network > >>> but not yet shared with any web page. // //// //'online' means the > >>> the service is present on the local network and shared with a web > >>> page. // > >>> > >>> /If "I" see a NetworkService object, then it has been provided to > >>> the web page "I" am in. > >> > >> Yes. > >> > >>> A NetworkService object has no existence (for the purpose of this > >>> standard) until it is provided to a web page. > >>> So if "I" see it, then online and available must have the same value. > >>> Best regards > >> > >> Yes, in this particular case that will be true. > >> > >> If we take another scenario, where I don't have access to a > >> NetworkService object but where a new service is detected on the > >> network, then the user agent is still going to fire a > >> serviceavailable event on the NetworkServices object (since I don't > >> have any binding of that service to a NetworkService object there can > >> be no serviceonline event fired). This is still useful because it is > >> an indicator that I can re-invoke getNetworkServices if I wish and > >> more devices will be available in the list presented to the user. > >> > >> When you're working with a NetworkService object it's quite important > >> to know whether _that particular service_ is available or not. In > >> that sense, 'online' is for tracking a shared service's availability > >> and 'servicesAvailable' is for tracking the general number of > >> services available on the current network(s). > >> > >> Like I said previously, we can change the naming here if there are > >> any better suggestions but I feel the need for both events is still > >> justified. > > JCD: I get it at last. > > It is the same thing. > > NetworkServices.onserviceavailable is fired when *a* new service > > becomes available NetworkService.onserviceonline is fired when *this* > > service becomes available > > Yes! Excellent summary :) > > > > > Maybe better names could be NetworkServices.onnewserviceavailable > and > > NetworkService.onavailable but I am not positive. > > That might be better. I actually considered calling both events > 'serviceavailable'. I wondered whether that would be acceptable or not and > ended up deciding against it. > How about NetworkServices.onnewservice and NetworkServices.onlostservice for the service manager, along with NetworkService.onavailable and NetworkService.onunavailable for individual network service objects? - Cathy. > Thanks, > > Rich
Received on Tuesday, 12 February 2013 20:54:05 UTC