[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

DanteServer as an App: Unwanted Sideeffects?



	Unfortunately, I still have a bone to pick with the DanteServer.
Why is it an app?

	I'm assuming that DanteServer is something that I need to run
on each core node to which I want to allow edge nodes to attach
themselves.  In the case of the public ANTS-2.0 topology on the ABone,
I'm assuming that we want (*at present*) to allow edges to attach to
any of the core nodes (if for no other reason than because it
simplifies setting up and maintaining our topology, I think).

	Now, consider this line in "core/AppBooster.java":

            localNode.setPrincipal(app.getPrincipal());

In the case of the DanteServer, it will make DanteServer' Principal
the Principal for the node.  Is this appropriate? Node.setPrincipal(p)
includes these constraints:

   void setPrincipal(Principal p)
    {
        Assert.require(p);

        /*
         * As we use it, the principal is only ever changed
         * from the bootstrap user to something else.
         */
        Assert.assert(p != SecurityDefaults.BOOTSTRAP_USER);
        Assert.assert(this.principal == SecurityDefaults.BOOTSTRAP_USER);

        this.principal = p;
    }

Effectively, this makes setPrincipal(p) a one-time operation.

	I can sort of understand that this kind of manipulation is OK
when dealing with an edge node that's running a single Application for
GUI interface, data insertion, etc.  I wonder if it's appropriate for
a core node?  Why is DanteServer so special?

					Craig Milo Rogers





[ Janos ] [ OSKit ] [ Network Testbed ] [ Flick ] [ Fluke ]
Flux Research Group / Department of Computer Science / University of Utah