[Nel] Suggestion for the NeL network library / architecture

Vincent Archer archer@nevrax.com
Tue, 12 Dec 2000 11:37:00 +0100


According to MIGUEL ANGEL BLANCH LARDIN:
> > At first we didn't see the "server to server" sentence.
> 
> Ok, I have a dummy question, but when it is better to have multicast 
> to a server delivering the messages to the rest of servers?

Quite simple: When you need to send the same message to more than one
server. As soon as you need to send a message to multiple servers,
you will tie up bandwidth and CPU resending the same message over and over
to each server.

Consider the following model. Each agent (which represent an object, NPC,
PC, the door, the lamp, whatever entity in your world) is represented
typically by an object in a "world service process". Once your world
becomes large, you need multiple processes. What happens when an agent
want to "talk" to another agent on a different process. The agent, in an
ideal (and OO) world, merely talks to an object located in its process
space, said object being either the recipient agent itself, or merely a
replica, which will forward the message across the network to the real
agent.

You don't need multicast for that: its straight 1-to-1.

However, what if the message is "what is your current XYZ". That's a fairly
frequent question. If you need to query across the network, you'll quickly
end up loading the net, just to find the value three variables.

That's where PGM/multicast intervenes. In that model, the agent, when he
changes some of his variables, notifies the replica that "XYZ are now...".
I spoke about how the world services organise where an agent resides. In
some models, you have about one, maybe two replicas, which you can notify
using a standard TCP stream. Or RDP. But, if you want a load-balancing
system, you quickly end up with a replica of an object in most world
service processes. It becomes then more efficient to multicast the updates
as above to all processes, and update them all in one sweep.

> How portable/compatible is mulitcast technology?

Multicast is working, right now. However, to work across separate networks,
it requires specific support from IP routers, and resources, which most
providers aren't willing to dedicate (multi-network multicast is mostly
used for video/audio "broadcasts", video conferencing or shows).

As for PGM, well, the current library has lots of empty directories and
"TODO" notes in comments, so it's clearly a work in progress :)

-- 
Vincent Archer                                         Email: archer@nevrax.com

Nevrax France.                              Off on the yellow brick road we go!