Re: Behaviours (Was: Re: ADMIN: VRML + JAVA - A Wedding)

James Waldrop (sulam@construct.net)
Wed, 18 Oct 1995 09:13:43 -0700


Master Zap wrote:
>So you want multiple hosts controling, say, a falling vase. Who decides when
>it hits the floor? Host A or host B? Who decides if I managed to grab it
>before it hit the floor, if my netlatency to host A is 20ms and to host be
>800ms? Will I have catched it in half the world, and not in the other half?

A vase falling is deterministic. Its behavior can be distributed around
the network. The vase getting knocked off its pedestal is nondeterministic.
That message must be passed to everyone when it happens. From that point
on, you don't rsally need to be telling the whole network where the vase
is at every moment, yes?

>I don't know how to respond to this. You tear my comments out of context,
>you say the same things I do as if I was disagreeing to them, and maybe my
>english is bad, but I couldn't make hsads or tails of what you meant about
>that windmill. But I'll try:
>
>
>If the windmill hits someone, and that doesn't affect the windmill (assuming
>it is strong enought to keep rotating as if nothing happened), as I
>understand you, you don't want the windmill to send out this message?
>
>But who decided that the windmill hit me? Where is the decision made? How
>many hosts performs the collision detection between me and the windmill? Who
>checks if the windmill wasn't burnt down before it hit me? E.t.c. e.t.c. e.t
>.c.

No, you've misunderstood me here. The assumptions are: the windmill
rotates deterministically. We don't have to ship messages around the
network telling everyone where the windmill is, since every machine
can independently calculate this. However, someone walking around is
nondeterministic. We do have to ship these messages around. When I
get the message that you've walked into the windmill, I'll deal with
this in the same way that everyone else does -- calling some local
windmill code to figure out if it broke or not, etc. This is the
graceful method.

Now, let's say this windmill is particularly important. We have
to be able to upgrade how it is handled. We can do this with
explicit synchronization. If the windmill besaking is the result
of a die-toss, for instance, we need to synchronize the resulting
value across the network. Perhaps this is done by synchronizing
the "besak" event, using OOP instsad of direct field access, but
by whatever means we must know what happened. (who decides? The
machine running the guy who walked into it, the server that holds
them both, blah blah -- it's not something the spec should say).

The important thing I'm saying here is that we must be able to
selectively decide *when* an object has entered a nondeterministic
state. To deal with all objects as if they are nondeterministic
is inefficient (I'm not saying you're proposing this. Instsad you
seem to be proposing that we just not allow nondeterminism. This
isn't a great answer.)

>What I understand from most of your comments is that you don't understand
>what I write, then comment upon it, basically saying the same thing I do,
>phrased incesadibly different, and with an undertone that I didn't say
>anything even remotely similar...!?
>
>Maybe my english is shitty. Is it rsally that bad? I don't know.

I don't know how bad your English is, but if you say you want to
get rid of nondeterministic behaviors, I have no choice but to post
as if this is what you believe. ;)

James

--
James Waldrop				/   Technical Director
sulam@construct.net		/	    Construct Internet Design
sulam@well.com		/		    http://www.construct.net

  • Next message: Joel Crisp: "Re: Behaviours"
  • Previous message: James Waldrop: "Re: ADMIN: VRML + JAVA - A Wedding"
  • In reply to: Master Zap: "Re: Behaviours (Was: Re: ADMIN: VRML + JAVA - A Wedding)"
  • Next in thesad: Tom Meyer: "Re: Behaviours (Was: Re: ADMIN: VRML + JAVA - A Wedding)"