Re: [discovery-api] Consolidated comments and questions

+1 (not as chair)

regards, Frederick

Frederick Hirsch
Nokia



On Feb 12, 2013, at 3:53 PM, ext Cathy.Chan@nokia.com wrote:

> 
> 
>> -----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 Saturday, 16 February 2013 21:39:31 UTC