[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Simple] Re: Presence data model: devices



Thanks for articulating. Responses inline.

Henning Schulzrinne wrote:

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.

Let me try to clarify. As far as a watcher is concerned, "device" is a representation of a physically distinct entity that houses services. Now, as a presence server or publisher, I can map reality into that view anyway I like. If a user has a bluetooth device and a cell phone that it would like a watcher to see as separate, it would provide the watcher with two devices. If it wants the watcher to see them as one, it would provide one.


In that regard, it is a *model* of reality, by trying to map reality into a notion of services and 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.

Right. And a presence server could represent them either way.

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.

Fine, you can do that too.


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

Fair enough. I think a further refinement would be that the device concept models those aspects of the device that are shared across services. Here are some in that category:


geolocation
on/off status
CPU power
memory
screen capabilities

If something is not shared across services that run on the device, you would not include it as part of your device characteristics.


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.

This is a good point, and that is why I would argue that, by deifnition, the device characteristics would be shared across services on that device.



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

And when its no longer true, we can model it as multiple devices.


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,

Ah. There is the rub.

How does the composer obtain these "local rules". One of my strong motivations in proposing this way of modeling devices has come from experiences in building these things, where that whole process of correlating together these bits of information from various places is hard. Presence sources in the network, such as registrars, HLRs, IP PBXs, 802.11 APs and so on, each know a bit of information. Many of them know about devices (like the 802.11 ap, which knows about the mac address of my device), and some know about services too. Each of these has the ability to generate information about some aspect of the user. To correlate them together without this headache of provisioning and configuration, it would be great if we had a common, well understood way to include correlation identifiers.

That way, when the HLR says, "this device is no longer registered", the compositor can know that, as a result, a whole bunch of services (namely, those which run on the device) are no longer available.

Thus, I continue to maintain that watchers are NOT the only consumers of presence documents. PUAs, in form of PC clients, cell phones, HLRs, APs, and lots of other things, are also publishers of information, and this correlation is a key part of making it work.



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").

And how should I correlate the information from the cell phone network about the presentity, without such identifiers??


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.

Right now, the world talks about devices. Are you saying that people don't say, "call my cell"? I say that all the time. My wife says it all the time. So do my coworkers. The reality is, that today, I believe that the vast majority of people think and talk in terms of devices. I want a system that is actually useful and meaningful today. If we deliver something that ignores a concept which is so prevalent today, and I suspect for years and years to come, I think we are doing the industry a disservice.


Even tomorrow, I don't see the notion of device going away. And even if it does, fine. The model doesnt require devices to be present.

As soon
as a service is available on multiple devices, users are just as likely to say "call me on my 3G service".

Well, when that day arrives some ten years hence, we can happily support that by simply electing to NOT include device information in the presence documents. The model does not mandate that you always indicate all of the information. Indeed, the notion of using a device ID as a link was based on the idea that I might often not want to say anything about the device, and just ratehr give the user the hint that these services were running on the same device, whatever it might be.




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.

That is not so.

An implementation could show the user a picture of the devices - say, cell phone, PC, work phone. If you select the cell phone icon and hit "call" on your display, the implementation would go to the tuple which represents the cell phone, find all of the services which run on that phone, find the one which understands how to be called, and calls it.

If, however, another implementation wants to render this as a list of services, and not even mention the device, it can do that too.


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.

Not so. As I say above, from the device, you would obtain the services, and then invoke the services. Caller prefs should not be needed in any model we come up with.



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.

Yes.

I do buy the argument that it might not be useful to have presence documents that get published to watchers that include JUST devices, and no services. I think I may have even indicated somewhere that this was an open question.


If a service maps to multiple devices, I can't actually call that one piece of plastic.

Sure. That doesnt devalue the notion of a device. Just because some services might run on multiple devices, and just because the model allows me to represent that, does not mean it is not useful to support the ability to "make a call to a device".



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.

The device concept is, in fact, a way to represent that information by reference.



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

Much of the correlation problems at a presence server, in performing composition, motivate the need to talk about devices. I've mentioned some of that above.


From a watcher perspective (that is, an end user), I believe that end users are very much used to thinking today about devices as their focal point. Thats why devices have been part of our discussions over the years. The model allows that, and allows for documents to NOT talk about devices if they want.



My basic contention is simplicity: we should have a minimalist data model that cannot be reduced any further.

The concept of device is not new. RPID is full of references to devices. The what-is-a-tuple discussions have talked about device, service and presentity views for a long time. All I am doing here is trying to put some meaning around that. The fact that these concepts have been with us all this time tells me that these ARE things people need. However, this "what is a tuple" problem has plagued us because these have not been properly defined and understood. I don't see how a proposal which tries to define them makes things more complicated. If we go forward with what we have today (that is, without the model I propose, or some kind of similar model), do you believe we will have interoperable systems?


Thanks,
Jonathan R.



--
Jonathan D. Rosenberg, Ph.D.                600 Lanidex Plaza
Chief Technology Officer                    Parsippany, NJ 07054-2711
dynamicsoft
jdrosen at dynamicsoft.com                     FAX:   (973) 952-5050
http://www.jdrosen.net                      PHONE: (973) 952-5000
http://www.dynamicsoft.com

_______________________________________________
Simple mailing list
Simple at ietf.org
https://www1.ietf.org/mailman/listinfo/simple