[DGD] Java or LPC (DGD)?

Albert Deinbeck albert-deinbeck at albert-deinbeck.de
Mon Aug 18 14:19:18 CEST 2003


----- Original Message -----
From: "Tavis Elliott" <tavise at nwlink.com>
To: <dgd at list.imaginary.com>
Sent: Monday, August 18, 2003 2:28 AM
Subject: Re: [DGD] Java or LPC (DGD)?


> On Mon, 18 Aug 2003 00:40:16 +0200, Albert Deinbeck <albert-
> deinbeck at albert-deinbeck.de> wrote:
> >
> > I took a quick look and it sounds very promising. Thank you for the
hint,
> > Tavis!
> >
>
> You're welcome.
>
> > This package allows one Java VM to be remote controlled by another and
> > influenced
> > at a very low level, down to changing bytecode on the fly, on live
> > objects.
> > It can also
> > suspend and stop threads, set breakpoints etc...
> >
> > Using this would mean to have two VM running, one running the mud and
the
> > other
> > controlling the first and doing maintenance jobs like class updates etc.
> > This could also be a solution to the problem of badly written classes
> > which
> > hang up
> > and never return. The second vm could notice this and
> > - change the class to the last state known to work
> > - pop the stack one step up and so simply leave the hung method
> > - send an exception to the hung thread
> >
> > Albert
> >
>
> Also note there are some huge security implications with this
> implementation.  For example I believe only Sun's Win32 implementation
> supports a SHM (shared memory) interface for the debugging connection,
> which means any other platform would require a socket connection.  Imagine
> the havoc a disgruntled player could wreak on a mud ...

Sure, but if you have open ports which accept connections from the world you
are
dead meat anyhow. The mud server would of course have a firewall which only
accepts socket connections on the reserved mud ports or from within the
local
network. Then the controlling VM can be on the same computer or on another
locally connected one.
>
> The controlling "JVM" can be in the SAME JVM as the application being
> controlled ... so if you have any network control you can simply pick a
> port which is blocked by the network and use the loopback interface from
> within the same process to do the controlling.

I think it's a bad idea to have it on the same vm. If the mud hangs up or
crashes,
your controller goes with it. I would rather have it in a seperate vm on the
same
computer.

Regards,
Albert


_________________________________________________________________
List config page:  http://list.imaginary.com/mailman/listinfo/dgd



More information about the DGD mailing list