W3C home > Mailing lists > Public > public-device-apis@w3.org > March 2013

RE: [discovery-api] Consolidated comments and questions

From: <Cathy.Chan@nokia.com>
Date: Tue, 5 Mar 2013 21:59:09 +0000
To: <giuseppep@opera.com>, <richt@opera.com>, <Norifumi.Kikkawa@jp.sony.com>
CC: <public-device-apis@w3.org>
Message-ID: <A46437648ECB3D4F852B077AFF9099F51C9796B4@008-AM1MPN1-061.mgdnok.nokia.com>
> -----Original Message-----
> From: ext Giuseppe Pascale [mailto:giuseppep@opera.com]
> Sent: Tuesday, March 05, 2013 4:44 AM
> To: Rich Tibbett; Norifumi Kikkawa
> Cc: public-device-apis@w3.org
> Subject: Re: [discovery-api] Consolidated comments and questions
>
> On Thu, 07 Feb 2013 05:38:58 +0100, Norifumi Kikkawa
> <Norifumi.Kikkawa@jp.sony.com> wrote:
> > On Wed, 6 Feb 2013 23:42:59 +0900
> > Rich Tibbett <richt@opera.com> wrote:
> >> Norifumi Kikkawa wrote:
> >> >
> >> > On Tue, 5 Feb 2013 23:36:15 +0900
> >> > Rich Tibbett<richt@opera.com>  wrote:
> >> >
> >> >> Cathy.Chan@nokia.com wrote:
> >> >
> >> >>> 4. Allow device type search (and more generally, other UPnP
> >> >>> search strings)?
> >> >>>>  From Naoyuki Sato [11], [13] and Cathy [14]:
> >> >>> It is typically more common for UPnP controller applications to
> >> search
> >> >>> for
> >> >>> device types than service types, as controllers tend to expose a
> >> >>> device list for the user to select from.
> >> >> The abstraction introduced by this specification is at the
> >> >> service-level. At no point would a user agent know what device
> >> >> types
> >> to
> >> >> search for since that is not a parameter that can be provided via
> >> >> the
> >> >> getNetworkServices() method.
> >> >>
> >> >> I have updated the specification so implementations can search for
> >> >> 'ssdp:all', 'upnp:rootdevice' or a valid service type token in
> >> >> their UPnP Search. I don't know how we could know to search for a
> >> >> specific device type in this specification. That would be a severe
> >> >> limitation
> >> on
> >> >> user choice in selecting services that match those requested by
> >> >> the
> >> page
> >> >> and favors the big players to promote and exclude existing and new
> >> >> devices from being discovered via this API.
> >> >>
> >> >> The specification is deliberately device-neutral and service
> >> orientated.
> >> >
> >> > I want to use deviceType search with NSD.
> >> >
> >> > Please see Igarashi-san's post [1] explaing "deviceType in UPnP" is
> >> > a service in the sense of generic term such as "MediaServer" or
> >> > "MediaRenderer" feature rather than type of physical device form
> >> > such as "PC" "TV" etc.
> >> >
> >> > For example, A physical device such as a PC can serve both
> >> > MediaServer deviceType and MediaRenderer deviceType features.
> >> > A MediaServer deviceType is defined to provide media library
> >> > service.,
> >> >
> >> > I agree with you that the NSD has to provide a mechanim for web
> >> > application to find network services regardless which physical
> >> > device holds the services in the network. Therefore, for this
> >> > purpose, I believe the NSD should use UPnP deviceType.
> >> > Note that typically user is not aware of serviceType (a control
> >> > point software does care).
> >>
> >> Every device type has one or more service types attached to it. We
> >> are actually suggesting we skip the step of asking for something
> >> unnecessarily abstract - a device type with X services - and instead
> >> ask for specific services of that device via service types.
> >>
> >> i.e. If a device type is defined to be the combination of a
> >> MediaServer and MediaRenderer then if you request those MediaServer
> >> and MediaRenderer services in a single call to getNetworkServices the
> >> user can select from a list of the _devices_ that match any or all of
> >> the service types provided in the opt-in dialog (since we plan to
> >> show devices in the opt-in dialog to users rather than service types
> >> at that level). If a device supports e.g. both a MediaServer and
> >> MediaRenderer then both services will be provided to the web page by
> >> the user selecting that single device at the prompt.
> >
> > A MediaServer is a deviceType defined to have ContentDirectory
> > serviceType (CDS), ConnectionManager serviceType (CMS) and optional
> > AVTransport serviceType (AVT). However, the combination of CDS, CMS
> > and optional AVT doesn't have to be a MediaServer deviceType. These
> > serviceTypes may be used to other purpose by definition of UPnP
> > Architecture.
> >
> > To find a logical entity to serve media library, a user/WebApp wants
> > to find a MediaServer, not a combination of CDS and CMS.
> > Therefore providing a deviceType seems reasonable and not uncessarily
> > abstract to me.
> >
>
> I think I agree with Igarashi-san and Kikkawa-san here, it seems to me that 
> in
> the UPnP case, a "device type" is similar to the concept of "service" that 
> we
> want to abstract in NSD, while UPnP services are more similar to a subset of
> "messages" that each service is able to respond to.
>
> Sure, if you allow to search for a UPnP service you can still then 
> "construct"
> your device by searching for multiple services and checking if they are from
> the same device, but why complicating things if the main use case is a 
> search
> for device-type? How many times people need to search for specific UPnP
> services rather than for "predefined collection" of such services (i.e. 
> device-
> types)?
>
> Also, are UPnP services really "independent" if they are part of the same
> "device"? e.g. if I have a Media Server device that includes the 3 services
> ContentDirectory(CDS), ConnectionManager (CMS) and AVTransport (AVT),
> can only the CDS be offline while the CMS and the AVT are online?
>
> In general if the 3 services are really just acting as one when they are
> mapped on one "device type" than it makes more sense to threat the UPnP
> device as a "service" in our spec.
>
Very well put.

> Mapping NSD "service" on a UPnP "device" may solve other issues as well,
> e.g. the use of the friendly name for service.name, as well as simplify the
> implementation of the user dialog.
>
I like that a lot!

- Cathy.

>
> > I doubt that it is useful to provide a phisical device level pop-up
> > (if you mean physical device in "we plan to show devices in the opt-in
> > dialog to users") because UPnP doesn't provide a physical level metadata.
> > UPnP defines lots of things per rootdevice, e.g. friendlyName, icon,
> > presentationPage, etc. deviceType is one of them.
> > I think UPnP device concept is important for developpers, but this is
> > logical concept and does not mean a physical device.
> > Per rootdevice pop-up wil be used instead and it's OK IMO.
> >
> >> navigator.getNetworkServices([
> >>    'urn:schemas-upnp-org:device:MediaServer:1',
> >>    'urn:schemas-upnp-org:device:MediaServer:2',
> >>    'urn:schemas-upnp-org:device:MediaServer:3',
> >>    'urn:schemas-upnp-org:device:MediaRenderer:1',
> >>    'urn:schemas-upnp-org:device:MediaRenderer:2',
> >>    'urn:schemas-upnp-org:device:MediaRenderer:3'
> >> ], function(networkServices) {});
> >>
> >> Selecting a device that supports both MediaServer:2 and
> >> MediaRenderer:1 from the call above will result in the
> >> NetworkServices object returned in the successCallback containing 2
> >> NetworkService objects attached to the same device.
> >
> > I'm little bit confused here. I don't want a way to find physical
> > devices which support more than one specified deviceTypes.
> > I'd like to see a way to find UPnP rootdevices which support a single
> > specified deviceType.
> >
> > In your example above, the API realizes deviceType-level search which
> > I actually hope though your comments seem negative about it?
> >
> > Regarding version number, UPnP defines a device shall respond backward
> > compatible query. For example, a device supporting
> > MediaServer:2 will respond to a query to MediaServer:1.
> >
> > Likewise, I propose the NSD API uses same scheme.
> > If WebApp wants to find MediaServer:1 capable device,
> >
> > navigator.getNetworkServices(
> >     'urn:schemas-upnp-org:device:MediaServer:1',
> > , function(networkServices) {});
> >
> > should be sufficient. WebApp shouldn't have to specify
> > MediaServer:2,3, or unknown future versions and all of them should be
> > returned.
> >
> > Thanks,
> > Kikkawa
> >
> >> There's room for improvement in binding those services together in
> >> the resulting NetworkServices object (i.e. indicating that they
> >> belong to the same device) but I don't think device type search
> >> up-front adds anything to what we can't already do within the current
> >> definition of getNetworkServices.
> >
> >
> >
> >> - Rich
> >>
> >> >
> >> > [1]
> >> http://lists.w3.org/Archives/Public/public-device-apis/2013Jan/0010.h
> >> tml
> >>
> >>
> >
> > --------------------------------------------------------------
> >  Norifumi Kikkawa <Norifumi.Kikkawa@jp.sony.com>
> >   Sec.1  Dept. No.2
> >   Cloud Technology Development Div.
> >   COR&D Sony Corporation
> >  (TEL) +81 50 3750 3953
> > --------------------------------------------------------------
> >
>
>
> --
> Giuseppe Pascale
> Product Manager TV & Connected Devices
> Opera Software



Received on Tuesday, 5 March 2013 22:00:04 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 5 March 2013 22:00:05 GMT