RE: [discovery-api] Consolidated comments and questions

> -----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