Re: Croquet Collaborative Server questions

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Re: Croquet Collaborative Server questions

Howard Stearns
[Bcc to ralph]

On Apr 15, 2007, at 9:34 AM, Ralf Plomann wrote:

> Hello,
> i played around the last couple of days with the collaborative.
>
> I have a two questions...burning :-)

OK, but first some qualification to the use of the term "server."

CroquetCollaborative.org runs a conventional Web server and  
application (Apache, PHP, etc.) for the conventional Web site.

The core Croquet model runs the same 3D simulation directly on each  
participating machine. This is different from 3D MMORG environments  
in which the simulation runs only on a server which notifies each  
client of the results.  However, all the Croquet communications does  
run through a single "router" per "world". The router merely  
authenticates and time stamps messages and distributes the messages  
to each participant, without actually executing the messages. The  
Collaborative runs 13 routers, multiplexed through a single  
"dispatcher" (so that only one TCP port is used). This dispatcher is  
on the same box as the Collaborative's Web/application servers. (See  
http://opencroquet.org/index.php/The_Core_Model)

Croquet also has other mechanisms. The Collaborative currently  
handles all media (pictures, movies, sounds...) though a Croquet  
router so that it is basically acting as a media server, but it could  
be distributed over a peer network. (See http://opencroquet.org/ 
index.php/Off-Island_Resources)

When you first join a simulation in progress, you need to get  
snapshot of the memory associated with that simulation. Croquet is  
designed so that any participant could supply that. However, upload  
bandwidth of most participants are limited by their ISP, and there  
isn't enough usage to ensure that there's always someone connected to  
supply the current definition. So we think that the purpose of the  
Collaborative is best served by providing a machine that is connected  
to each of the fixed set of current Collaborative worlds at all  
times. We call this a "continuity server".  The Collaborative uses  
the same box for that, too. (Some early Croquet papers used the term  
"interactivity server" to encompass the combined functionality -- if  
not the implementation -- of the router, media network, and  
continuity server.)

In addition, the Collaborative also runs VNC (aka RFB) servers, and  
an additional specialized lightweight server for launching new VNC  
server processes. We run that on the same box, too.

So it is certainly fair to say that the Collaborative is running a  
server box, in many senses of the word. But it is probably  
inaccurate, and certainly imprecise, to say that there is a "Croquet  
server" involved.

>
> - Can you please tell me what's the internet connection speed of  
> your croquet collaborative server right now?
> (I am thinking of setting up a little own server in Germany)

Supranet is a very community-spirited commercial hosting-service in  
Madison, WI. They have allowed us to place our machine in their  
racks, and to connect to their pipe through a governor that can limit  
our bandwidth to 1 Mbps.  When I get chance and notice no one  
connected, I'll run a test from the box to measure (e.g.,  visiting  
http://www.testmy.net/ from the box).
>
> - is it possible to run a collaborative server from shell/
> commandline e.g. for hosted servers without x-windows?

Yes. The Unix VM's for Squeak/Croquet allow command-line and script  
file operation, and can be told to start up without using any  
display. (We call that "running headless.")  The box DOES actually  
have X-windows, which I find convenient for maintenance. For example,  
I can start up normally in a VNC session and interact directly with  
the debugger. However, this box does not have OpenGL or OpenAL  
support, so I can't really run Croquet graphics. That is, I have to  
do "command line" sort of stuff within Squeak when I want to run  
Croquet on that box.

The command used to start the Collaborative continuity server is:
   ...path.../squeak -headless path-to-startup-script.st

The startup script for the Collaborative is, essentially:

KMessageRouter runRouters: 5910
        serverName: 'user-name-for-continuity-server'
        serverPassword: 'password-for-continuity-server'
        log: false.
KHarness := KStandardHarness new
        defaultErrorHandler: #resetRouter:;
        setupUser: 'user-name-for-continuity-server'
        password: 'password-for-continuity-server'
        entryWorld: WisconsinWorld
        address: '127.0.0.1'
        port: 5910.
KHarness syncAllWorlds.

For our goals, we find it convenient to run things as an rc.d daemon,  
and we also do some additional logging and maintenance stuff.

Our host asked us to run FreeBSD on the box, because they knew and  
trusted it for single use and for scaling if need be. But the Unix  
squeak VM folks don't normally compile for FreeBSD.  I used  
Squeak-3.9-7. The file platforms/unix/src/plugins.ext
was modified by removing UnixOSProcessPlugin because I couldn't get  
it to build otherwise. Not all of the Croquet VM tests pass. In  
particular, socket reuse and FFI does not pass.


>
> Greeting,
> Ralf
>
>
> --------------------------------
> http://www.appare.de

Ah, so you're the guy who's been importing stuff made in Blender.  
Well done!