[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Simple] Presence data model: devices
Let me try to formulate my concerns about devices somewhat less
flippantly than in my earlier rush mail. I'm probably missing pieces,
but we need to start somewhere. A fair treatment would probably require
another draft...
I have the following concerns:
(1) Devices in the data model draft don't correspond exactly to the
physical model that naive users have of a device. The data model states,
for example, that
... it is perfectly
acceptable to use this model to talk about that PC as being composed
of two separate devices.
There does not appear to be any clear-cut rule that would allow a
presentity or watcher to decide whether a single physical device
consists of one or more logical or virtual devices. Personal-area
network devices such as assemblies of BlueTooth gadgets pose similar
problems, as both a view as a single device or as individual devices are
reasonable. Locally, we have created virtual multimedia devices that
consist of multiple pieces of plastic (a projector, a speakerphone, an
IP array microphone). They act exactly like one multimedia device in
most senses.
(2) Devices have ill-defined properties that are implied, but not
stated, to the watcher.
The only architectural motivational paragraph that I could find is in
Section 4: "Furthermore, the concept of device adds the ability to
correlate services together. The device models the underlying platform
that supports all of the services on the phone. Its state therefore
impacts all services."
However, the types of states that are shared are implicit, not explicit.
Clearly, devices do not share *all* states across services. For every
possible state, there are plausible exceptions where services on the
device do *not* share that state. I gave a few examples, but the burden
is on the device proponent to prove that the watcher can unambiguously
determine which states are indeed shared and why such knowledge is
useful to the watcher. The likely case is that some states for some
services are shared for some devices, while others are not. (I'm
guessing that any reasonable device will have one shared location state,
at least at GPS resolution, but the example above shows that you can
violate even that assumption with a bit of forward thinking.)
I agree that state inference models are useful - the draft alludes to
that. However, many of these are probably best expressed as either local
rules at the composer, based on local knowledge available to the
composer, or as heuristics ("if my two mobile devices report two
different locations, pick my Brand X cell phone since I carry that to
job sites"; "if my cell phone service is reporting me as talking, mark
presentity status as busy"). It is unclear how a watcher would benefit
from such decontextualized knowledge.
(3) Some of the motivating assumptions are short-term or debatable.
For many users, devices represent the ability
to communicate, not services. Frequently, users my statements like,
"call me on my cell phone" ...
It is debatable that users actually want to refer to a device, even
though the current service=device abstraction encourages that. As soon
as a service is available on multiple devices, users are just as likely
to say "call me on my 3G service". Since a device in this model is not
reachable itself (it only has a URN that does not resolve), this device
notion can't actually be implemented by a user - the device tuple cannot
be used to actually call the device. Thus, there is no functionality
gain and the user still has to use a service tuple, with caller prefs or
an explicitly labeled service, to do anything of use. If you want to
call the Nokia-made blue cell phone of mine, there has to be a service
tuple, with URI, that maps one-to-one to that device. If a service maps
to multiple devices, I can't actually call that one piece of plastic.
My proposal is simple: remove the notion of devices from the data model.
If there is a need to allow one-to-many references (e.g., one service
found at multiple locations due to uncertainties in where the presentity
is), we should have appropriate means to express this by value or by
reference for that particular service tuple and property.
I would like to see examples of services that significantly benefit from
adding devices and that cannot be similarly expressed by the
summarization model across service instances. (= a property that is
shared by all instances of a service or there there is at least one
instance that can be selected is shown.)
My basic contention is simplicity: we should have a minimalist data
model that cannot be reduced any further.
Henning
_______________________________________________
Simple mailing list
Simple at ietf.org
https://www1.ietf.org/mailman/listinfo/simple