[MUD-Dev] TECH: Distributed Muds
Emil Eifrém <emil.eifrem@windh.com>
Emil Eifrém <emil.eifrem@windh.com>
Sun Apr 8 01:24:27 CEST 2001
On Friday, April 06, 2001 11:24 PM, Jim Craig wrote:
> I've been working on a distributed java based mud.
Why do you wish to distribute your mud? Do you anticipate such a high
(player- or other) load that one machine can't handle it? Do you need
the added reliability of a fail-over solution? Distributed
programming, at least in my experience, adds complexity overhead and
development time, particularly in debugging and testing. It usually
comes with a performance hit on the low-end -- sacrificing low-end
performance for high-end scalability.
So my advice is that if you can get away with not distributing your
server, do. But if you need the scalability or HA, carefully evaluate
existing solutions/frameworks and read up on CPD (Concurrent, Parallel
and Distributed) architecture before you get started.
> There are numerous issues to deal with regarding the persitance of
> player data not to mention a slew of other issues. I'm sure I'm not
> the first person to run into these...
Rather than persistance of player data, I think the real challenge
should be to design and implement a framework for transparent
distribution of your server. Once you have that in place, you
shouldn't ever have to think about whether your objects are
distributed over several machines -- it will be handled transparently
by your server's backend distribution layer.
Of course, if you choose to use an existing framework you're
sidestepping that design challenge, but on the other hand you will
have to learn a new (potentially quite complex, since it solves a
complex problem) framework and how to program within it.
> Does anyone know of any resources where I might be able to read up
> on technical/architectural aspects, i.e. design patterns for
> distribute worlds? White papers, Web sites, etc?
It depends on whether you've decided to go with J2EE or roll your own
distributed framework using e.g RMI or CORBA. (I don't know of any
other alternatives for a Java-based mud, but I haven't looked
extensively into third-party frameworks for distribution.)
J2EE:
Your first source of information should be the documentation of the
EJB Container of your choice. Then you have a wealth of
vendor-neutral information on Sun's J2EE web site
[http://java.sun.com/j2ee] -- pay particular attention to the
excellent "Blueprints" (for a sound architectural understanding of
the complex J2EE environment) and the "J2EE tutorial" (for an
implementation head start). Additionally, be sure to check out The
Server Side for some J2EE patterns
[http://www.theserverside.com/patterns] as well as the latest on
the EJB/JTS/JTA/JMX/JMA/ChooseYourJBuzzwordHere front.
Roll your own:
I suggest you pick up a good book on the topic. POSA2 is a good
choice, at least if you're comfortable reading C/C++ examples.
Check it out at [http://www.cs.wustl.edu/~schmidt/POSA]. Dough
Schmidt has (IMHO) the best repository for CPD patterns at
[http://www.cs.wustl.edu/~schmidt/patterns-ace.html]. Also, I'm
fairly certain that PLoP (Pattern Languages of Program Design)
volume II covers some distributed patterns but since I don't have
it here at work I can't verify that.
Good luck!
-EE [emil at eifrem.com]
_______________________________________________
MUD-Dev mailing list
MUD-Dev at kanga.nu
https://www.kanga.nu/lists/listinfo/mud-dev
More information about the mud-dev-archive
mailing list