[vos-d] parameterized views
Peter Amstutz
tetron at interreality.org
Tue Dec 12 00:51:27 EST 2006
Hi Reed,
This is essentially the two approaches to how you might implement a
"view" that I have been considering. On the one hand, you have some
kind of server-side trickery that basically serves up different data to
different people, so everyone just sees what they want to see. On the
other, you create lots of new vobjects that act basically as proxies to
the "real" vobject but apply some transformation or filtering policy.
I'm not really comfortable with using the access control system for
this, though, since security policies (or capabilities!) define what you
*can't* see, whereas a view filters out what you *don't want* to see.
Access control is also a very blunt instrument, since you now don't know
if an access control error is due to being genuinely locked out or just
a transient application of "you can't see that from where you are"
policy.
Having discrete vobjects represent proxies has the advantage of being
able to give a link to another user and then in principal they would be
able to see exactly what you see. The disadvantage is I am now looking
at something that is not the "real" vobject, and so something that
references the 3D sector as a whole would (applied naively) reference
your personal proxy object and not the actual 3D sector vobject that
everyone shares. (Except they don't, because they have their view
proxies). The semantics of writing back to the original vobject
"through" a proxy object also get kind of ugly.
I think the problem we're really trying to solve, the "parameters" in a
parameterized view, is having a context or environment that modifies the
results of an action. As an example, I ask for the child list, and
supply a context of "I'm at location XYZ and have an area of interest of
10 meters" then the sector can use that context to constrain what it
returns back to me.
What's really important, I think, is that you be able to capture a
context and send it to another user. So now you and I can refer to the
same set of vobjects (no proxies to mess up our references) and if we
need to reconcile our views, we can share the context that was used to
create that view. Access control is still applied, but it's an
orthogonal issue.
I think this solves Kao's issue of having as much as possible a unified
space for semantic reasons. Also, a view should be a pretty well
defined parameter space, so it should be possible to scan or iterate
through views. Going back to the original motivation, "Time" would be a
view parameter, so by iterating or scanning through time you can see all
the frames or checkins over the timespan of your animation or version
control data.
I'm not yet sure what the best implementation of this. Also, the line
between what is a contextual parameter and a plain method parameter is
somewhat fuzzy, although it's fairly obvious when the context is being
used to affect the output of an existing core function like
getChildren().
Thoughts?
On Tue, Dec 05, 2006 at 07:34:20AM -0500, Reed Hedges wrote:
>
> I thought about this a little a while ago.
>
> 1. My thought for server side control of a "View" was to use something
> sort of similar to access control, where you write a set of rules that a
> vobject can use when it recieves a list-children request. A given rule
> also needs to be re-evaluated as the world changes in some way, and
> generate a child-inserted notification. What kinds of changes matter
> would vary by each rule, so a rule would also be a listener to the world
> and the avatar or whatever else. libvos could provide a specialization
> of the Listener API for this particular purpose, integrated with the
> View rules API.
>
> That way has the advantage of basically being hidden from the remote site.
>
> 2. Another possability is to simply have a "View" vobject for each
> client that the server adds/removes objects to and from. The client has
> to use that View instead of e.g. the sector in a 3D world.
>
> This way has the advantage of basically requiring no changes to VOS, and
> is very simple, but with the disadvantage of extra Vobject overhead and
> it requires that all clients be aware of the "View" convention.
>
> I think you had this same idea Pete, at least for A3DL (we talked about
> it in Boston this summer)?
>
>
> 3. For client side AOI in a 3D world, my thought is that 3D objects have
> bounding box or radius properties, and since properties are now
> basically part of the VOS core, support some simple math expressions
> compared to property values in search queries. Or a client does two
> searches, once to get a list of all objects, their positions and bounds
> info (which is not a ton of data) then a second search to only get those
> that fall in its AOI. Maybe a sector should suggest.
>
> Reed
>
> _______________________________________________
> vos-d mailing list
> vos-d at interreality.org
> http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d
--
[ Peter Amstutz ][ tetron at interreality.org ][ peter.amstutz at gdit.com ]
[Lead Programmer][Interreality Project][Virtual Reality for the Internet]
[ VOS: Next Generation Internet Communication][ http://interreality.org ]
[ http://interreality.org/~tetron ][ pgpkey: pgpkeys.mit.edu 18C21DF7 ]
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://www.interreality.org/pipermail/vos-d/attachments/20061212/84c6e201/attachment.pgp
More information about the vos-d
mailing list